За последние 24 часа нас посетили 22556 программистов и 1141 робот. Сейчас ищут 799 программистов ...

Как обработать файлы из разных папок

Тема в разделе "Прочие вопросы по PHP", создана пользователем anadikt, 20 мар 2019.

  1. anadikt

    anadikt Новичок

    С нами с:
    19 мар 2019
    Сообщения:
    2
    Симпатии:
    0
    В PHP не силен, прошу не ругайтесь сильно. Подскажите, пожалуйста, есть файлы в разных папках (data и price ) для редактирования, если файлы лежит в одной папке, то все нормально работает (но сортировка идет по названию файла), хотел сделать по группам, но выдает ошибку.

    Вот код для одной папки:
    Код (Text):
    1.             <?php
    2.  
    3.                 if($_GET["auth"]!="admin") {
    4.                     exit("Войдите ещё раз по <a href='/admin/'>ссылке</a>");
    5.                 }
    6.              
    7.                 $files = scandir("../template/data");
    8.              
    9.                 echo('<form method="post" action="set_file.php?auth=admin">');
    10.                 $text_labels = array();
    11.                 for ($i=2; $i<count($files); $i++) {
    12.                     $fh = fopen('../template/data/'.$files[$i], 'r+');
    13.                     $k=0;
    14.  
    15.                     while (!feof($fh)) {
    16.                         $line = fgets($fh);
    17.                         if($k==0) {
    18.                             $text_label = $line;
    19.                             $text_labels[] = $text_label;
    20.                          
    21.                         } else {
    22.                             $text = $line;
    23.                         }
    24.                         $k++;
    25.                     }
    26.                     fclose($fh);
    27.                     $k=0;
    28.                  
    29.                     echo("<label class='label'>".$text_label." </label><input  type='text' name='text".$i."'value='".$text."'></input>");
    30.                  
    31.                 }
    32.  
    33.                 echo("<input type='submit' name='sub' value='Изменить'  />");
    34.                 echo('</form>');
    35.              
    36.                 #var_dump($text_labels);
    37.              
    38.                 if(isset($_POST['sub'])) {
    39.                     for ($i=2; $i<count($files); $i++) {
    40.                         file_put_contents('../template/data/'.$files[$i], $text_labels[$i-2]."\n".$_POST['text'.$i]);
    41.                     }
    42.                     echo("<div class='title'>Изменения выполнены успешно.</div><div class='list'>");
    43.                     for ($i=2; $i<count($files); $i++) {
    44.                         echo($text_labels[$i-2].": ".$_POST['text'.$i]."<br>");
    45.                     }
    46.                 echo('</div>');
    47.                 }
    48.  
    49.             ?>
    А вот я как думал для разных папок:

    Код (Text):
    1.             <?php
    2.  
    3.                 if($_GET["auth"]!="admin") {
    4.                     exit("Войдите ещё раз по <a href='/admin/'>ссылке</a>");
    5.                 }
    6.              
    7.                 $files = scandir("../template/data");
    8.                 $files = scandir("../template/price");
    9.              
    10.                 echo('<div class="p-job__body-col2"><form method="post" action="set_file.php?auth=admin">');
    11.                 $text_labels = array();
    12.                 for ($i=2; $i<count($files); $i++) {
    13.                     $fh = fopen('../template/data/'.$files[$i], 'r+');
    14.                     $k=0;
    15.  
    16.                     while (!feof($fh)) {
    17.                         $line = fgets($fh);
    18.                         if($k==0) {
    19.                             $text_label = $line;
    20.                             $text_labels[] = $text_label;
    21.                          
    22.                         } else {
    23.                             $text = $line;
    24.                         }
    25.                         $k++;
    26.                     }
    27.                     fclose($fh);
    28.                     $k=0;
    29.                  
    30.                     echo("<label class='label'>".$text_label." </label><input type='text' name='text".$i."'value='".$text."'></input>");
    31.                  
    32.                 }
    33.                 for ($i=2; $i<count($files); $i++) {
    34.                     $fh = fopen('../template/price/'.$files[$i], 'r+');
    35.                     $k=0;
    36.  
    37.                     while (!feof($fh)) {
    38.                         $line = fgets($fh);
    39.                         if($k==0) {
    40.                             $text_label = $line;
    41.                             $text_labels[] = $text_label;
    42.                          
    43.                         } else {
    44.                             $text = $line;
    45.                         }
    46.                         $k++;
    47.                     }
    48.                     fclose($fh);
    49.                     $k=0;
    50.                  
    51.                     echo("<label class='label'>".$text_label." </label><input type='text' name='text".$i."'value='".$text."'></input>");
    52.                  
    53.                 }
    54.  
    55.  
    56.                 echo("<input type='submit' name='sub' value='Изменить'  />");
    57.                 echo('</form>');
    58.              
    59.                 #var_dump($text_labels);
    60.              
    61.                 if(isset($_POST['sub'])) {
    62.                     for ($i=2; $i<count($files); $i++) {
    63.                         file_put_contents('../template/data/'.$files[$i], $text_labels[$i-2]."\n".$_POST['text'.$i]);
    64.                     }
    65.                     echo("<div class='title'>Изменения выполнены успешно.</div><div class='list'>");
    66.                     for ($i=2; $i<count($files); $i++) {
    67.                         echo($text_labels[$i-2].": ".$_POST['text'.$i]."<br>");
    68.                     }
    69.                 echo('</div>');
    70.                 }
    71.  
    72.             ?>
     
    #1 anadikt, 20 мар 2019
    Последнее редактирование: 20 мар 2019
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Какую?
     
  3. anadikt

    anadikt Новичок

    С нами с:
    19 мар 2019
    Сообщения:
    2
    Симпатии:
    0
    Warning: fopen(../template/data/chernovoi.php): failed to open stream: No such file or directory

    Warning: feof() expects parameter 1 to be resource, boolean given
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Что эта ошибка означает?