2010-08-18 25 views
6

它看起來好像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)?

你能告訴我如何擺脫這個空間嗎? 非常感謝:-)!

+0

這是習慣接受的解決方案(一個複選框,我相信)它是否適合你,讓別人喜歡自己就會知道,如果你不再需要更多的闡述。 – 2010-08-18 14:47:41

+0

我認爲綠色檢查就足夠了?對不起,如果我錯了。 – Chris 2010-08-18 17:52:22

回答

12

fgets()返回線換行符(\n)。然後,與其他所有空格一樣,這將作爲HTML中的空間呈現。

刪除尾隨換行符,使用

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

感謝您的解釋,非常感謝。 – Chris 2010-08-18 14:44:27

7

我相信fgets也會返回行尾字符(\ n),並且這會在html中呈現爲空格。

如果你想刪除的行中的所有尾隨空格,你可以使用rtrim

+0

感謝您的快速回復:-) – Chris 2010-08-18 14:44:05