我具有此功能,可从txt文件中删除行:
function replace_file($path, $string, $replace)
{
set_time_limit(0);
if (is_file($path) === true)
{
$file = fopen($path, 'r');
$temp = tempnam('./', 'tmp');
if (is_resource($file) === true)
{
while (feof($file) === false)
{
file_put_contents($temp, str_replace($string, $replace, fgets($file)), FILE_APPEND);
}
fclose($file);
}
unlink($path);
}
return rename($temp, $path);
}
用法:replace_file("file.txt", "line to remove", '');
它工作正常,但始终在文件末尾保留一个空行。
有可能解决吗?
任何帮助将不胜感激。
谢谢!
答案 0 :(得分:1)
如果您只想最后删除空行,请查看rtrim
。
答案 1 :(得分:0)
我已经将函数编辑为:
function replace_file($path, $string, $replace)
{
set_time_limit(0);
if (is_file($path) === true)
{
$file = fopen($path, 'r');
$temp = tempnam('./', 'tmp');
if (is_resource($file) === true)
{
while (feof($file) === false)
{
file_put_contents($temp, str_replace($string, $replace, fgets($file)), FILE_APPEND);
file_put_contents($temp,
implode('', file($path, FILE_SKIP_EMPTY_LINES)));
}
fclose($file);
}
unlink($path);
}
return rename($temp, $path);
}
现在可以使用了。