2010-08-18 8 views
6

Es scheint, als ob fgets nach allem, was es zurückgibt, ein Leerzeichen setzt. Hier einige Beispiel-Code:Automatischer Abstand nach dem Ergebnis von fgets?

<?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); 
} 
?> 

die Warum

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 

kehrt gibt es einen Raum zwischen den Inhalt der Zeile und „Wort“? Und warum ist dieser Raum nicht am Ende der Datei (Blablablaword)?

Können Sie mir bitte sagen, wie Sie diesen Raum loswerden können? Vielen Dank :-)!

+0

es üblich ist, eine Lösung zu akzeptieren (eine Checkbox, glaube ich), wenn es für Sie arbeitet, so dass andere wie mich wissen, wenn Sie nicht mehr länger brauchen Ausarbeitung. –

+0

Ich dachte, der grüne Check würde genügen? Entschuldigung, wenn ich falsch liege. – Chris

Antwort

12

fgets() gibt eine Linie und das Newline-Zeichen (\n) verwenden. Dies würde dann, wie alle anderen Leerzeichen, als Leerzeichen in HTML gerendert werden.

die Newline zu entfernen, verwenden

$line = rtrim($line, "\r\n"); 
// Trims \r, \n and \r\n, which are all considered 
// newlines on different platforms 
+0

Danke für die Erklärung, sehr geschätzt. – Chris

7

Ich glaube, dass fgets das Ende der Zeile Zeichen (\ n) auch zurückgibt, und dies wird als Leerzeichen in HTML gerendert.

Wenn Sie alle Leerzeichen am Ende von der Linie entfernen möchten, können Sie rtrim

+0

Vielen Dank für Ihre schnelle Antwort :-) – Chris