<?php
$fp=fopen("交响乐.txt","rb+");
fseek($fp,0);
while($fp){
echo fgets($fp);echo "<br>";
}
echo "<hr>";
$readarray=file("经典时尚语录.txt");
if(!$readarray){
echo "用file函数读取文件失败<br>";
}
else file_put_contents("语录.txt",$readarray);
echo "<hr>";
fclose($fp);
?>
上述代码中为什么不能实现将同一目录下的文件"经典时尚语录.txt"的数据写到文件"语录.txt"(新创建的)中去?
我不解也?请各位指点,不胜感激!
------解决方案--------------------
<?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