似乎在一切返回之后,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)?

您能告诉我如何摆脱这个空间吗?非常感谢 :-)!

有帮助吗?

解决方案

fgets() 返回一行 newline字符(\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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top