Не удается записать csv в файл .txt? PHP

Я пытаюсь использовать функцию putcsv в php для записи массива в текстовый файл, но файл пуст, я попытался изменить расширение на .csv, и оно работает, но мне нужно записать его в .txt в соответствии со спецификациями моего задания. Я попытался изменить имя файла на .csv, затем записать в него, а затем обратно в .txt, мой размер файла изменился, но файл по-прежнему пуст.

Вот мой код

$fp = fopen('logfile.txt','w') or die ('No file!!!');
      fputcsv($fp,$csv);
      fclose($fp);

person James Dean    schedule 24.10.2015    source источник
comment
см. также stackoverflow.com/questions/26973813/   -  person CodeLove    schedule 24.10.2015
comment
Итак, я должен читать файл с помощью getcsv и записывать каждую строку с помощью putcsv?   -  person James Dean    schedule 24.10.2015


Ответы (2)


У меня есть ваша проблема, если она не позволяет записывать формат CSV в текстовый файл, тогда записывайте в файл CSV и переименовывайте (используя rename() в PHP) в текстовый файл после завершения записи в CSV.

Вот мой пример кода:

$fp = fopen('logfile.csv','w') or die ('No file!!!');
fputcsv($fp,$csv);
fclose($fp);
rename('logfile.csv','logfile.txt');

Дайте мне знать, если ваша проблема решена.

Второй метод:

str_putcsv()

function str_putcsv($fields, $delimiter = ',', $enclosure = '"', $escape_char = '\\' ) {
    foreach ($fields as &$field) {
        $field = str_replace($enclosure, $escape_char.$enclosure, $field);
        $field = $enclosure . $field . $enclosure;
    }
    return implode($delimiter, $fields) . "\n";
}

Просто вы можете позвонить

$file = fopen("newfile.txt", "w") or die("Unable to open file!");
$csvStr = str_putcsv($csv);
fwrite($file, $csvStr);
fclose($fp);
person Jitendra Kumar. Balla    schedule 24.10.2015
comment
Круто, это такое хорошее простое решение для реализации! - person James Dean; 24.10.2015
comment
К сожалению, это не решено. Изменяется размер файла, но в файле нет текста. - person James Dean; 24.10.2015

Используйте fwrite()

 $myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
 $txt = "John Doe\n";
 fwrite($myfile, $txt);
 $txt = "Jane Doe\n";
 fwrite($myfile, $txt);
 fclose($myfile);
person user3814670    schedule 24.10.2015