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: -)

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top