fgets的结果后自动加空格?

7

看起来像是 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

为什么行的内容和“word”之间有空格?为什么文件末尾(Blablablaword)没有这个空格?
请问如何去掉这个空格?
谢谢 :-)!

通常情况下,如果一个解决方案(我相信是一个复选框)对您有用,那么接受它是惯例,这样像我这样的其他人就会知道您不再需要更多的阐述。 - user410344
我以为绿色的勾号就足够了?如果我错了,请原谅我。 - Chris
2个回答

14

fgets()函数返回一行换行符(\n),由于所有的空格在HTML中都会被渲染成为一个空格,因此它也会被渲染成为空格。

要移除末尾的换行符,请使用:

$line = rtrim($line, "\r\n");
// Trims \r, \n and \r\n, which are all considered
// newlines on different platforms

7
我相信fgets返回行末字符(\n),同时在HTML中将其呈现为空格。
如果你想从该行中移除所有尾随的空格,你可以使用rtrim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接