Wenn PHP fgets verwendet, um eine Zeichenfolge zu lesen, hört es zunächst auf zu lesen, wenn es auf eine neue Zeile stößt, aber es liest tatsächlich mehr Dinge nach der Zeichenfolge, es ist der Grund für die neue Zeile Vielleicht liegt es daran, dass am Ende immer ein Leerzeichen steht, was bei der Verwendung von Zeichenfolgen zu Fehlern führt.
Ich habe es versucht, hauptsächlich mit fgetc und case, und festgestellt, dass am Ende der Zeichenfolge zwei ASCII-0-Zeichen stehen. Diese beiden Dinge verursachten die Leerzeichen hinter der Zeichenfolge.
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>"; }
Verwenden Sie also einfach die String-Interception-Funktion und schneiden Sie die letzten beiden Zeichen ab.
$i = strlen($data1); echo "aa".substr($data1,0, $i-2)."aa";
Urheberrechtserklärung: Dies Der Artikel ist ein Original des Bloggers. Artikel dürfen nicht ohne Genehmigung des Bloggers reproduziert werden.
Das Obige stellt vor, wie man das Problem des Lesens zusätzlicher Leerzeichen durch die PHP-Funktion fgets löst, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.