espacio automático después de resultado fgets'?
Pregunta
Parece como si FGETS pone un espacio después de todo lo que devuelve. Aquí hay un código de ejemplo:
<?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);
}
?>
que devuelve
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
¿Por qué hay un espacio entre el contenido de la línea y la "palabra"? Y por qué es este espacio no existe al final del archivo (Blablablaword)?
¿Me podría decir cómo deshacerse de este espacio? Muchas gracias: -!)
Solución
fgets () devuelve una línea de y el carácter de nueva línea (\n
). Esto entonces, como todos los otros espacios en blanco, se representa como un espacio en HTML.
Para eliminar el salto de línea final, el uso
$line = rtrim($line, "\r\n");
// Trims \r, \n and \r\n, which are all considered
// newlines on different platforms
Otros consejos
Creo FGETS devuelve el carácter de fin de línea (\ n) también, y esto se representa como un espacio en html.
Si desea eliminar todo espacio al final de la línea, se puede usar rtrim