本帖最后由 ggApache 于 2012-03-16 18:28:18 编辑

解决方案 »

  1.   

     file_put_contents 要求第二参数是字符串
    而你的是数组( $readarray=file("经典时尚语录.txt");)
      

  2.   

    <?php
      $fp=fopen("交响乐.txt","rb+");
      fseek($fp,0);
      while( feof($fp) ){ 
         echo fgets($fp);echo "<br>";
      }fgets()只取文件中 一行 内容。取哪行,由文件内部指针确定。fgets每取一行内容,指针向前一行。
    feof()用于检测指针是否已经到底,即文件最末尾。
    而你用$fp,它的值并不会变化,因此会陷入死循环===========
      $readarray=file("经典时尚语录.txt");
      if(!$readarray){
      echo "用file函数读取文件失败<br>";
      }
      else file_put_contents("语录.txt",$readarray);   
      echo "<hr>";
      fclose($fp);file()函数的返回值是数组类型。而file_put_contents()接受的类型是字符串,因此,写入的的$readarray会被强制类型转换为字符串类型,也就是'Array'
    参考:http://www.php.net/manual/zh/ref.filesystem.php
      

  3.   

    多谢第二位朋友的指点,主要是你帮我在while循环中添加了feof函数来判断,其他都无问题的。file_put_contents()接受的类型可以是数组(参见php手册),只不过系统会自动调用join函数将其转化为字符串而已。