国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php實現(xiàn)讀取超大文件的方法

2024-05-04 23:24:38
字體:
來源:轉載
供稿:網(wǎng)友
這篇文章主要介紹了php實現(xiàn)讀取超大文件的方法,需要的朋友可以參考下
 
 

通常來說在php讀取大文件的時候,我們采用的方法一般是一行行來講取,而不是一次性把文件全部寫入內(nèi)存中,這樣會導致php程序卡死,下面就給大家介紹這樣一個例子。

讀取大文件最后幾行數(shù)據(jù):

<?php/** * 取文件最后$n行 *  * @param string $filename 文件路徑 * @param int $n 最后幾行 * @return mixed false表示有錯誤,成功則返回字符串 */function FileLastLines($filename, $n){   if(!$fp = fopen($filename, 'r')){    echo "打開文件失敗,請檢查文件路徑是否正確,路徑和文件名不要包含中文";    return false;    }  $pos = -2;  $eof = "";  $str = "";  while($n > 0){    while($eof != "n"){      if(!fseek($fp, $pos, SEEK_END)){        $eof = fgetc($fp);        $pos–;        }else{        break;        }      }    $str .= fgets($fp);    $eof = "";    $n–;    }  return $str;  }echo nl2br(FileLastLines('sss.txt', 4));/** * * * 取文件最后$n行 * *  * @param string $filename 文件路徑 * * @param int $n 最后幾行 * * @return mixed false表示有錯誤,成功則返回字符串 */function FileLastLines($filename, $n){  if(!$fp = fopen($filename, 'r')){    echo "打開文件失敗,請檢查文件路徑是否正確,路徑和文件名不要包含中文";    return false;    }  $pos = -2;  $eof = "";  $str = "";  while($n > 0){    while($eof != "n"){      if(!fseek($fp, $pos, SEEK_END)){        $eof = fgetc($fp);        $pos--;        }else{        break;        }      }    $str .= fgets($fp);    $eof = "";    $n--;    }  return $str;  }echo nl2br(FileLastLines('sss . txt', 4));function tail($fp, $n, $base = 5){  assert($n > 0);  $pos = $n + 1;  $lines = array();  while(count($lines) < = $n){    try{      fseek($fp, - $pos, SEEK_END);      }    catch (Exception $e){      fseek(0);      break;      }    $pos *= $base;    while(!feof($fp)){      array_unshift($lines, fgets($fp));      }    }  return array_slice($lines, 0, $n);  }var_dump(tail(fopen("access.log", "r+"), 10));$fp = fopen($file, "r");$line = 10;$pos = -2;$t = " ";$data = "";while ($line > 0){  while ($t != "n"){    fseek($fp, $pos, SEEK_END);    $t = fgetc($fp);    $pos --;    }  $t = " ";  $data .= fgets($fp);  $line --;  }fclose ($fp);echo $data;?>

讀者可以根據(jù)該實例特點加以改進和完善,使之更加符合自身應用需求。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南乐县| 高陵县| 武平县| 尼勒克县| 和平县| 睢宁县| 富宁县| 乐亭县| 通山县| 石景山区| 原平市| 鄂托克前旗| 怀远县| 沂南县| 友谊县| 黔东| 利津县| 邹城市| 如东县| 江永县| 岫岩| 光山县| 西吉县| 双城市| 新巴尔虎右旗| 青川县| 汕尾市| 建水县| 桂林市| 郁南县| 潜江市| 来安县| 平谷区| 营山县| 铜陵市| 田阳县| 广南县| 公安县| 孝感市| 宁安市| 曲麻莱县|