如Title,php如何有效率进行文件资源操作,读取文件,取文件最后一行数据,分段取大文件数据,获取文件行数,获取文件的一行内容...

读取文件,利用文件指针,取文件最后一行数据,

//ftell()返回指针位置、fseek()移动指针到指定位置、rewind()初始指针到起始位置,
//这三个函数配合 fopen(),fgets(),fread()等非常方便对文件资源进行进一步的 复杂性操作等等
$lastStr ='';
$file    = 'xxx';
$fp      = fopen($file, 'r');
fseek($fp,-1,SEEK_END);
while(($c = fgetc($fp)) !== false){
    if($c == "\n" && $lastStr) break;
    $lastStr = $c . $lastStr;
    fseek($fp, -2, SEEK_CUR);
}
fclose($fp);

分段取大文件数据

$file     = 'xxx';
$partSize = 1024*1024*2;
$fp       = fopen($file, "r");
while(!feof($fp)) {
    if($data=fread($fp,$partSize)){
        echo 'doing...';
    }
}
fclose($fp);

获取文件行数,获取文件的一行内容

//获取文件行数,获取文件的一行内容,  注意:函数stream_get_line()需要php5支持;
$fp = fopen($file , 'r')
while($rowStr = stream_get_line($fp,8192,"\n")){}
while($rowStr = fgets($fp)){}
while($rowArr = fgetcsv($fp)){}
fclose($fp);

//非常不太建议使用的方法,只是听说操作大文件会比较占用资源
count(file($file_path)); 

标签: PHP

WeChatPay

微信打赏

Alipay

支付宝打赏

如果对你也有帮助,随便来个五毛的吧,一切随缘看心情...

空空如也