кажется, что 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