摘要:php删除文件最后一行内容的方法:首先利用fopen()函数打开一个文件;然后利用fgets()函数从打开的文件中读取一行内容,并将其保存到数组中;最后利用array_pop()函数删除数组中的最
php删除文件最后一行内容的方法:首先利用fopen()函数打开一个文件;然后利用fgets()函数从打开的文件中读取一行内容,并将其保存到数组中;最后利用array_pop()函数删除数组中的最后一个元素即可。
相关函数:
(推荐教程:php图文教程)
fopen() 函数打开一个文件或 URL。
如果 fopen() 失败,它将返回 FALSE 并附带错误信息。您可以通过在函数名前面添加一个 '@' 来隐藏错误输出。
fgets() 函数从打开的文件中返回一行。
fgets() 函数会在到达指定长度( length - 1 )、碰到换行符、读到文件末尾(EOF)时(以先到者为准),停止返回一个新行。如果失败该函数返回 FALSE。
array_pop() 函数删除数组中的最后一个元素。返回数组的最后一个值。如果数组是空的,或者不是一个数组,将返回 NULL。
(学习视频推荐:php视频教程)
代码实现:
/** * 删除文件最后一行 * @param $file_path 文件路径 */ public function delLastLine($file_path) { $file = $fp = fopen($file_path, 'r') or die("Unable to open file!"); while(!feof($file)) { $fp = fgets($file); if($fp) { $content[] = $fp; } } array_pop($content); fclose($file); //重新写入文件 $file = fopen($file_path, 'w+'); fwrite($file, implode("", $content)); fclose($file); }
说明:
我的文件读取出来之后数组的最后一行保存的是false,所以if($fp)才往数组里写。如果文件中有空行,请把这个判断去掉,在对数组进行两次删末尾行的操作。如果太大到超出内存的文件,这个方法不适用。
相关文章推荐
网站谷歌评分90+意味着什么?2022-09-06
怎样将不安全网站变成安全网站访问?2022-09-26
网站排名下降,可能跟算法更新没关系2022-09-20
网站如何设置高质量的网页标题?2022-09-14
做外贸网站选哪些语言?法语、德语最吃香2022-09-13