[Contexte] : étant donné que la fonction de fichier lit tout le contenu dans la mémoire en même temps et que PHP est utilisé pour empêcher certains programmes mal écrits d'occuper trop de mémoire, de provoquer une mémoire système insuffisante et de provoquer le crash du serveur, il faut donc penser à quelque chose de mieux.
[Idée] :
01 思路1:利用php执行linux的命令,将一个文件内容(a.log)复制到另一个文件中(b.log) cat a.log >>b.log02 思路2:用php执行linux的head命令,获取内容,一行行写入另一个文件(b.log)中。 cat a.log|wc -l sed -n '1 p' a.logfileputcontents('b.log’, $content, FILE_APPEND);
[Mise en œuvre du code] :
//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 '$i p' a.log`; //文件追加 file_put_contents('b.log', $content, FILE_APPEND); } }/*}}}*/
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!