我以这种方式从文件夹创建一个txt文件:
$fp = fopen("mylist.txt","rw+");
foreach(glob("folder/*.*") as $value){
fwrite($fp,$value."\n");
}
它在每个项目内部创建每个项目,每行一个,但它也在文件末尾添加换行符。
这是mylist.txt的内容:
foldelr/file1.mp3
folder/file2.mp3
(BLANK NEWLINE)
我试图以这种方式删除txt文件末尾的空白换行符:
$filetxt = fopen("mylist.txt","r");
$rtrim = rtrim($filetxt, "\n");
$newfile = file_put_contents("newfile.txt", $rtrim);
但它不起作用,因为在“newfile.txt”中,我仍然在最后一个文件名后面有换行符。
我试图在数组中转换文件,使用“array_diff()”删除最后一行,但它失败了。 我也尝试了这个帖子中的所有建议:remove new line characters from txt file using php但不能解决我的问题。
有没有人可以帮我理解我遗失或错误的内容?
亲切的问候
布鲁斯
答案 0 :(得分:3)
使用file_get_contents方法,我可以正常使用
$fp = fopen("mylist.txt","rw+");
foreach (glob("test/*.*") as $value) {
fwrite($fp, $value . "\n");
}
$filetxt = file_get_contents("mylist.txt");
$rtrim = rtrim($filetxt, "\n");
$newfile = file_put_contents("mylist.txt", $rtrim);
或者您也可以使用数组计数删除最后一个换行符。
$fp = fopen("mylist.txt","rw+");
$i =0;
foreach(glob("folder/*.*") as $value){
$i++;
if($i < count(glob("folder/*.*")))
fwrite($fp,$value."\n");
else
fwrite($fp,$value);
}
答案 1 :(得分:1)
您是否尝试过首先编写新行而不是值(假设您已在文件中包含内容)?
fp = fopen("mylist.txt","rw+");
foreach(glob("folder/*.*") as $value){
fwrite($fp, "\n".$value);
}