ホームページ >バックエンド開発 >PHPチュートリアル >TXT ファイル操作の問題、緊急

TXT ファイル操作の問題、緊急

WBOY
WBOYオリジナル
2016-06-23 13:56:201163ブラウズ

fwrite を使用してドキュメントに文字列を書き込み、ポインターが次の行ではなく最後の行の終わりで停止するようにするにはどうすればよいですか?
文字列の後に PHP_EOL または "rn" を追加するたびに、最後の行を書き終わると、ドキュメント内では次のようになります
"String 1"
"String 2"
しかし実際には、fgets (コード
read[0]= vvv@222.dpn
read[0]= vvv@333.dpn
read[0]=
なぜもう一つあるのでしょうか?最後の行に文字列が書かれているからです。スペースを空けると、TXT ドキュメント内で 1 行ずつ読むことができます。
この問題を回避するにはどうすればよいですか?要件があるので、fgets() を使用する必要があります。関数が file_get_contents() を使用できるようにする場合は、言うのは簡単です。 。
神に解決策を求める

議論に返信(解決策)

何か問題はありませんか?

while(!feof($fp1)) はファイルの終わりを読んだときにのみ確立されます

そして fgets($fp1) の最後の行は内容の読み取りを完了しただけで、ファイルの終わりを読んでいません
次のラウンドで更新される ファイルの最後まで読んでください

ので

$fname1=("pending.txt");$fp1=fopen($fname1, "r+");while(!feof($fp1)){		$read=explode(";", fgets($fp1));//字符串中用;来打成数组	echo "read[0]= ".$read[0];// 用来测试	echo "<br/>";}fclose($fp1);
と書くことができます

何か間違っていますか?

while(!feof($fp1)) はファイルの終わりを読んだときにのみ確立されます

そして fgets($fp1) の最後の行は内容の読み取りを完了しただけで、ファイルの終わりを読んでいません
次のラウンドで更新されます ファイルの最後まで読みます

したがって、

while($buf = fgets($fp1)){       $read=explode(";", $buf);//字符串中用;来打成数组    echo "read[0]= ".$read[0];// 用来测试    echo "<br/>";}
と書くことができます

ありがとう、この問題は、その中の行数を削除したことが原因でした。ある行を削除したいのですが、元のコードはこれです

rreee
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。