在文本文件中添加一行的最佳方法是什么?当我运行下面的代码时,它会覆盖所有行。
此外,当添加一行时,它包含一些“s:4:”& s:60:字符。这是什么意思?我只想将$photourl
添加到urls.txt
。
<?php
foreach ($_POST['photoselect'] as $photourl) {
file_put_contents($target_dir . '/urls.txt', $photourl);
$fp = fopen($target_dir . '/urls.txt','w');
fwrite($fp,serialize($photourl));
}
?>
答案 0 :(得分:1)
打开文件时,最后一个参数表示您希望如何设置文件指针。使用'w',这会截断文件,你可能想要'a',这意味着将指针放在文件的末尾。 (见http://php.net/manual/en/function.fopen.php模式)
除非你的内容包含特殊字符,否则只需编写它而不是serialize
。
您的代码每次都会覆盖文件......
$fp = fopen($target_dir . '/urls.txt','a');
foreach ($_POST['photoselect'] as $photourl) {
fwrite($fp,$photourl.PHP_EOL);
}
fclose($fp);
答案 1 :(得分:1)
您可以附加file_put_contents
file_put_contents($target_dir . '/urls.txt', $photourl, FILE_APPEND);