Как из одного файла записать в другой?

219
21 апреля 2022, 03:10

Как из одного файла записать в другой и нужно отредактировать определенные столбцы

файл .dat

1<|>текст<|>12<|>19<|>Декабрь<|>2018<|>23:01:00<|> 2<|>текст<|>12<|>20<|>Декабрь<|>2018<|>00:01:00<|> 3<|>текст<|>12<|>20<|>Декабрь<|>2018<|>01:01:00<|>

пытаюсь делать вот так

           $month = array('1' => 'январь','2' => 'февраль',
        '3' => 'март','4' => 'апрель','5' => 'май',
        '6' => 'июнь','7' => 'июль','8' => 'август',
        '9' => 'сентябрь','10' => 'октябрь','11' => 'ноябрь',
        '12' => 'декабрь');
        
            $d = date("{$month[date("n")]}");
      $row = 1;
     $file = fopen("data/time.dat","w");
    if (($handle = fopen("data/time2.dat", "r")) !== FALSE) {
        while (($elem = fgetcsv($handle, 1000, "<|>")) !== FALSE) {
            $num = count($elem);
            $row++;
            //echo $elem[0] . "<|>" . $elem[1] . "<|>" . date("m") . "<|>". date("d") . "<|>". date("Y") . "<|>".$d."<|><br>";
            
            $line = $elem[0] . "<|>" . $elem[1] . "<|>" . date("m") . "<|>". date("d") . "<|>". date("Y") . "<|>".$d."<|>";
            $line .=  "\r\n";
            
            fputcsv($file, $line);
            var_dump($file);
       }
      fclose($handle);
   }
   fclose($file);
Answer 1

fputcsv работает по-другому

https://www.php.net/manual/ru/function.fputcsv.php

в вашем случае должно быть так:

fputcsv($file, $elem, "<|>");

либо если вы уж так хотите записать новую строку, то замените fputcsv на file_put_contents:

file_put_contents("data/time.dat", $line, FILE_APPEND)
Answer 2
         $data =  file("data/time2.dat");
     
             $month = array('1' => 'январь','2' => 'февраль',
        '3' => 'март','4' => 'апрель','5' => 'май',
        '6' => 'июнь','7' => 'июль','8' => 'август',
        '9' => 'сентябрь','10' => 'октябрь','11' => 'ноябрь',
        '12' => 'декабрь');
        
            $d = date("{$month[date("n")]}");
    // разбиваем по строкам
    
    foreach($data as $rows) {
    
        // разбивка на столбики
        $elem = explode("<|>", $rows);
        if (!strripos($rows, "<|>")) continue;
        
        echo $elem[0] . "<|>" . $elem[1] . "<|>" . date("m") . "<|>". date("d") . "<|>". date("Y") . "<|>".$d."<|><br>";
            $line .= $elem[0] . "<|>" . $elem[1] . "<|>" . date("m") . "<|>". date("d") . "<|>". date("Y") . "<|>".$d."<|>\r\n";
            
    if (!file_put_contents("data/time.dat", $line));
 
    }
READ ALSO
Как добавить магазин в woocommerce?

Как добавить магазин в woocommerce?

так получилось, что я удалил страницу магазина в woocommerce с целью поменять страницу магазина, на свою страницу магазина, уже сверстаннуюУдалил...

210
убрать знак ? из урл

убрать знак ? из урл

У меня есть такие ссылки http://mishka-gamesxyz/game/?wrecked и http://mishka-games

86
Где реализуется работа с таблицей password_resets Laravel

Где реализуется работа с таблицей password_resets Laravel

Во встроенном контроллере для сброса пароля Auth\ResetPasswordController есть функция reset

120