2010-08-18 12 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

यह एक समाधान स्वीकार करने के लिए प्रथागत है (एक चेकबॉक्स, मेरा मानना ​​है) करता है, तो यह आप के लिए काम करता है, यदि आप नहीं रह गया है और अधिक की जरूरत है ताकि अपने आप को जैसे अन्य लोगों को पता चल जाएगा विस्तार। –

+0

मैंने सोचा कि हरा चेक पर्याप्त होगा? अगर मैं गलत हूं तो क्षमा करें। – Chris

उत्तर

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

7

मुझे विश्वास है कि fgets लाइन वर्ण (\ n) का अंत भी लौटाता है, और इसे HTML में एक स्थान के रूप में प्रस्तुत किया जाता है।

आप लाइन से सभी अनुगामी अंतरिक्ष निकालना चाहते हैं, तो आप इस्तेमाल कर सकते हैं rtrim

+0

आपके त्वरित उत्तर के लिए धन्यवाद :-) – Chris

संबंधित मुद्दे