Maison >développement back-end >tutoriel php >Lecture d'une taille de fichier 1G via PHP

Lecture d'une taille de fichier 1G via PHP

jacklove
jackloveoriginal
2018-06-08 14:29:362036parcourir

La lecture de fichiers est très importante en PHP. La lecture de fichiers avec une mémoire plus importante nécessite certaines compétences. Cet article expliquera les compétences.

Puisque la fonction de fichier lit tout le contenu dans la mémoire en même temps et que PHP a pour but d'empêcher certains programmes mal écrits d'occuper trop de mémoire et de provoquer une mémoire système insuffisante et de provoquer un crash du serveur, il vous faut donc quelques bonnes idées.

01 思路1:利用php执行linux的命令,将一个文件内容(a.log)复制到另一个文件中(b.log)
cat a.log >>b.log
02 思路2:用php执行linux的head命令,获取内容,一行行写入另一个文件(b.log)中。
cat a.log|wc -l
sed -n '1 p' a.log
fileputcontents('b.log’, $content, FILE_APPEND);
//02.读取1G的文件内容
  public function testGetLarge()
  {/*{{{*/
 #01. 方法1 直接cat后重定向
  #if('useCat' == 'useCat')
 if(0 && 'useCat' == 'useCat')
 {
 `cat a.log>>b.log`;
  }
#02. 使用flie_put_contents ,一行一行读取并追加写入
 if('useFilePutContents' == 'useFilePutContents')
 {/*{{{*/
$lineNum = `cat a.log|wc -l`;
for($i=1; $i<= $lineNum; $i++)
 {
   $content = `sed -n &#39;$i p&#39; a.log`;
   //文件追加
   file_put_contents(&#39;b.log&#39;, $content, FILE_APPEND);
   }
   }/*}}}*/

Cet article explique en détail comment lire une taille de fichier de 1 Go via PHP Pour plus de connaissances connexes, veuillez faire attention au site Web chinois de php.

Recommandations associées :

Expliquez le code de la fonction d'initialisation de la classe PHP

Expliquez le code PHP orienté objet et lié à l'héritage PHP

Expliquez le code lié à la sérialisation et à la désérialisation orientées objet PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn