Rumah >pembangunan bahagian belakang >masalah PHP >php如何删除文件最后一行

php如何删除文件最后一行

王林
王林asal
2020-08-04 14:21:273543semak imbas

php删除文件最后一行的方法:首先利用fopen()函数打开一个文件;然后利用fgets()函数逐行读取文件,将读取内容放入数组中;最后利用array_pops()函数删除数组中的最后一个元素即可。

php如何删除文件最后一行

array_pop() 函数删除数组中的最后一个元素。返回数组的最后一个值。如果数组是空的,或者不是一个数组,将返回 NULL。

(推荐教程:php图文教程

语法:

array_pop(array)

fgets() 函数从打开的文件中返回一行。

fgets() 函数会在到达指定长度( length - 1 )、碰到换行符、读到文件末尾(EOF)时(以先到者为准),停止返回一个新行。如果失败该函数返回 FALSE。

语法:

fgets(file,length)

(视频教程推荐: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)才往数组里写。如果文件中有空行,请把这个判断去掉,在对数组进行两次删末尾行的操作。如果太大到超出内存的文件,这个方法不适用。

Atas ialah kandungan terperinci php如何删除文件最后一行. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:php怎么获取时间戳Artikel seterusnya:php如何设置文件夹权限