PHP - 在文本文件中添加行会覆盖旧行。还有奇怪的s:文本文件中的字符?

问题描述 投票:-1回答:2

向文本文件添加行的最佳方法是什么?当我运行下面的代码时,它会覆盖所有行。

另外,当添加一行时,它包含一些“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));
  }
?>
php fwrite
2个回答
1
投票

您可以使用file_put_contents附加 file_put_contents($target_dir . '/urls.txt', $photourl, FILE_APPEND);


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);
© www.soinside.com 2019 - 2024. All rights reserved.