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

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top