我是php的新手,我已经搜索并整理了这个脚本,将文本转换为csv并将文件写出来。
$File = "/var/apache2/htdocs/loginS/host.txt";
$Handle = fopen($File,"r");
$Content = fread ($Handle,filesize ($File));
fclose($File);
fclose($Handle);
$Content = explode("\t", $Content);
foreach($Content as $Value) {
//echo $Value."|"; // till this line working
fwrite($save, $Value);
fclose($save);
}
问题是当我尝试写文件时。我只有一行。我的错误是什么。
答案 0 :(得分:3)
您正在循环中正在写入记录的文件上调用fclose()
。 fclose()
关闭文件句柄,使其不再有效,无法写入。
在结束fclose($save);
的{{1}}之后移动}
。
此外,您可以通过调用foreach()
来简化一些事情,因为这是您使用$Content = file_get_contents($File);
生效的内容。此外,由于fread()
只是一个字符串变量,因此在其上调用$File
是不必要的,并且不执行任何操作。您在fclose()
上致电fclose()
正确关闭了它。但使用file_get_contents()将消除对两者的需求。你需要的唯一文件是你写的那个。
以下是使用file()函数的示例,该函数将文件的每一行读入数组。
$Handle