ホームページ >バックエンド開発 >PHPチュートリアル >TXT ファイル操作の問題、緊急
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() を使用できるようにする場合は、言うのは簡単です。 。
神に解決策を求める
議論に返信(解決策)
そして 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/>";}と書くことができます