php fgets函數讀取多餘的空格解決

php用fgets讀字符串的時候,本來遇到換行就停止讀了,但是實際會在字符串後面多讀點東西,我感覺是windows的換行的原因,\r\n,可能是這個原因,最後總有一個空格,導致我在使用字符串的時候總髮生錯誤。
進過嘗試,主要使用fgetc,和case,發現字符串結尾有兩個ascii爲 0  字符,這兩個東西造成了字符串後面的空格。
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>";
          
}
所以果斷用字符串截取函數,切掉最後兩個字符就好了。
$i = strlen($data1);
echo "aa".substr($data1,0, $i-2)."aa";

這樣就能正常讀取了,但是最後一行字符串後面要加個空格

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章