Automatische Raum nach fgets' Ergebnis?
Frage
scheint es, als ob fgets legt einen Raum nach allem, was er zurückkehrt. Hier einige Beispiel-Code:
<?php
Echo "Opening " . $_SERVER{'DOCUMENT_ROOT'} . "/file.txt" . "...<br>";
$FileHandle = @Fopen($_SERVER{'DOCUMENT_ROOT'} . "/file.txt", "r");
If ($FileHandle){
Echo "File opened:<br><br>";
While (!Feof($FileHandle)){
$Line = Fgets($FileHandle);
Echo $Line . "word<br>"; //Should be LINECONTENTSword, no space.
}
Fclose($FileHandle);
}
?>
welche Erträge
Opening /var/www/vhosts/cqe.me/httpdocs/file.txt...
File opened:
First line word
Second line word
3rd line word
Another line of text word
Blablablaword
Warum gibt es einen Raum zwischen der Inhalt der Zeile und „Wort“? Und warum ist dieser Raum nicht da am Ende der Datei (Blablablaword)?
Könnten Sie mir bitte sagen, wie dieser Raum loswerden? Vielen Dank: -)
Lösung
fgets () eine Zeile zurückgibt und das Newline-Zeichen (\n
). Dies würde dann, wie alle anderen Whitespaces, als ein Raum in HTML gerendert werden.
das Newline zu entfernen, verwenden
$line = rtrim($line, "\r\n");
// Trims \r, \n and \r\n, which are all considered
// newlines on different platforms
Andere Tipps
Ich glaube, fgets kehrt die Zeilenende-Zeichen (\ n) auch, und dies ist als ein Raum in HTML gerendert.
Wenn Sie alle Leerzeichen am Ende von der Linie entfernen möchten, können Sie verwenden, rtrim