2010-08-18 10 views
6

sembra che fgets metta uno spazio dopo tutto ciò che restituisce. Ecco qualche esempio di codice:Spazio automatico dopo il risultato di 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); 
} 
?> 

che restituisce

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 

Perché c'è uno spazio tra il contenuto della linea e la "parola"? E perché questo spazio non c'è alla fine del file (Blablablaword)?

Potrebbe dirmi come liberarmi di questo spazio? Grazie mille :-)!

+0

è consuetudine ad accettare una soluzione (una casella di controllo, credo) se funziona per voi, in modo che altri come me sapranno se non sono più bisogno di più elaborazione. –

+0

Ho pensato che il controllo verde sarebbe sufficiente? Scusami se sbaglio. – Chris

risposta

12

fgets() restituisce una linea e il carattere di nuova riga (\n). In questo modo, come tutti gli altri spazi bianchi, si renderà uno spazio in HTML.

Per rimuovere il newline finale, utilizzare

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

Grazie per la spiegazione, molto apprezzata. – Chris

7

Credo che fgets restituisca anche il carattere di fine riga (\ n), e questo è reso come uno spazio in html.

Se si desidera rimuovere tutto lo spazio finale dalla linea, è possibile utilizzare rtrim

+0

Grazie per la rapida risposta :-) – Chris