ホームページ > バックエンド開発 > PHPチュートリアル > PHP fgets 関数が余分なスペースを読み取って解決する

PHP fgets 関数が余分なスペースを読み取って解決する

WBOY
リリース: 2016-07-29 09:16:15
オリジナル
1988 人が閲覧しました

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チュートリアルに興味のある方の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート