PHP fwrite () для записи большой строки в файл

Я должен написать большую строку 10MB в файл, и я использую эту строку для достижения этого:

fwrite($file, $content);

проблема в том, что не вся строка записывается в файл и ограничена определенным пределом.

а также FWRITE всегда возвращайся 7933594,

3

Решение

Да, fwrite Функция ограничена длиной, и для больших файлов вы можете разбить файл на более мелкие фрагменты, как показано ниже:

    $file   = fopen("file.json", "w");

$pieces = str_split($content, 1024 * 4);
foreach ($pieces as $piece) {
fwrite($file, $piece, strlen($piece));
}

fclose($file);
7

Другие решения

Альтернативный способ решения @Ayman Alkom.

function fwrite_stream($fp, $string) {
for ($written = 0; $written < strlen($string); $written += $fwrite) {
$fwrite = fwrite($fp, substr($string, $written));
if ($fwrite === false) {
return $written;
}
}
return $written;
}

Это должно улучшить производительность.

Но если вы используете этот код для копирования большого файла,

Команда Linux

"cat file1.txt file2.txt > file.txt"

Оконная команда

"copy file1.txt+file1.txt file.txt"

Это решение.

1

По вопросам рекламы [email protected]