代码之家  ›  专栏  ›  技术社区  ›  Jack

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

  •  -1
  • Jack  · 技术社区  · 8 年前

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

    此外,在添加行时,它还包含一些“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));
      }
    ?>
    
    2 回复  |  直到 8 年前
        1
  •  1
  •   halojoy    8 年前

    您可以附加file\u put\u内容
    file_put_contents($target_dir . '/urls.txt', $photourl, FILE_APPEND);

        2
  •  1
  •   Nigel Ren    8 年前

    打开文件时,最后一个参数指示您希望如何设置文件指针。如果使用“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);