Автоматическое пространство после результата FGETS?
Вопрос
Кажется, что 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);
}
?>
который возвращается
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
Почему между контентом линии и «словом» есть пространство? И почему это пространство не находится в конце файла (Blablablaword)?
Не могли бы вы сказать мне, как избавиться от этого пространства? Большое спасибо :-)!
Решение
fgets () возвращает линию и Новый персонаж (\n
). Это тогда, как и все другие пробелы, будет отображаться как пространство в HTML.
Чтобы удалить новую линию, используйте
$line = rtrim($line, "\r\n");
// Trims \r, \n and \r\n, which are all considered
// newlines on different platforms
Другие советы
Я полагаю, что FGETS также возвращает символ конца линии ( N), и это представлено как пространство в HTML.
Если вы хотите удалить все пространство для запекания из линии, вы можете использовать rtrim
Не связан с StackOverflow