PHP が fgets を使用して文字列を読み取るとき、本来は新しい行に遭遇すると読み取りを停止しますが、実際には文字列の後にさらに多くのものを読み取るのが Windows の改行の原因である可能性があります。これが理由ですが、最終的には常にスペースが存在し、文字列を使用するときにエラーが発生します。
主に fgetc と case を使用して試してみたところ、文字列の末尾に 2 つの ascii 0 文字があることがわかりました。これら 2 つのことが原因で文字列の後ろにスペースができました。
while(!feof($myfile)) { $data1 = fgets($myfile); $i = strlen($data1); //str_replace(array('\n' ,'\r', '\n\r', ''), 'v', $data1); switch ($data1) { case 0: # code... //echo 0; break; case 10: echo 10; break; default: # code... echo 11; break; } echo $i; //$i++; echo "aa".$data1."aa"; echo "<br>"; echo "aa".substr($data1,0, $i-2)."aa"; echo "<br>"; }
それでは、文字列インターセプト関数を使用して、最後の 2 文字を切り取ってください。
$i = strlen($data1); echo "aa".substr($data1,0, $i-2)."aa";
著作権表示: この記事はブロガーによるオリジナル記事であり、許可なく転載することはできませんブロガーの。
以上、phpのfgets関数で余分なスペースを読み込んでしまう問題の解決方法を内容も含めて紹介しましたので、PHPチュートリアルに興味のある方の参考になれば幸いです。