Автоматический пробел после результата 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)?

Не могли бы вы сказать мне, как избавиться от этого места? Большое спасибо: -)!

7
задан Chris 18 August 2010 в 14:33
поделиться

2 ответа

fgets () возвращает строку и символ новой строки ( \ n ). Тогда это, как и все другие пробелы, будет отображаться как пробел в HTML.

Чтобы удалить завершающую новую строку, используйте

$line = rtrim($line, "\r\n");
// Trims \r, \n and \r\n, which are all considered
// newlines on different platforms
14
ответ дан 6 December 2019 в 08:40
поделиться

Я полагаю, что fgets также возвращает символ конца строки (\n), и он отображается как пробел в html.

Если вы хотите удалить все пробелы из строки, вы можете использовать rtrim

7
ответ дан 6 December 2019 в 08:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: