PHP fwrite () para escrever uma grande string para o arquivo

Eu tenho que escrever uma grande string 10MB para arquivo, e eu estou usando essa linha para conseguir isso:

fwrite($file, $content); 

O problema é: não é toda a string escrita no arquivo e limitada a um limite específico.

e fwrite sempre retorna 7933594 .

Sim, a function fwrite é limitada ao comprimento e, para arquivos grandes, você pode dividir o arquivo em peças menores como as seguintes:

  $file = fopen("file.json", "w"); $pieces = str_split($content, 1024 * 4); foreach ($pieces as $piece) { fwrite($file, $piece, strlen($piece)); } fclose($file); 

Forma alternativa da solução @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; } 

Isso deve fazer um desempenho um pouco melhor.

Mas se você usar este código para copiar um arquivo grande,

Comando Linux

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

Comando de janela

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

É a súbita.

Intereting Posts