2010-06-18 21 views
80
में फाइल करने के लिए एक नई लाइन लेखन

मेरे कोड:पीएचपी

$i = 0; 
$file = fopen('ids.txt', 'w'); 
foreach ($gemList as $gem) 
{ 
    fwrite($file, $gem->getAttribute('id') . '\n'); 
    $gemIDs[$i] = $gem->getAttribute('id'); 
    $i++; 
} 
fclose($file); 

किसी कारण के लिए, यह स्ट्रिंग के रूप \n लिख रही तो फ़ाइल इस तरह दिखता है: Google'ing से

40119\n40122\n40120\n42155\n36925\n45881\n42145\n45880 

यह मुझे \r\n का उपयोग करने के लिए कहता है, लेकिन \r एक कैरिज रिटर्न है जो ऐसा नहीं लगता है जो मैं करना चाहता हूं। मैं बस फ़ाइल को इस तरह दिखाना चाहता हूं:

40119 
40122 
40120 
42155 
36925 
45881 
42145 
45880 

धन्यवाद।

उत्तर

219

'\n'"\n" के साथ बदलें। जब आप ' का उपयोग करते हैं तो बचने का अनुक्रम पहचाना नहीं जाता है।

manual देखें।

लाइन समाप्ति को लिखने के सवाल के लिए, नोट here देखें। असल में, लाइन ऑपरेटिंग के लिए विभिन्न ऑपरेटिंग सिस्टम के अलग-अलग सम्मेलन होते हैं। विंडोज "\ r \ n" का उपयोग करता है, यूनिक्स आधारित ऑपरेटिंग सिस्टम "\ n" का उपयोग करते हैं। आपको एक सम्मेलन में रहना चाहिए (मैंने "\ n" चुना होगा) और अपनी फ़ाइल को बाइनरी मोड में खोलें (fopen "wb" प्राप्त करना चाहिए, न कि "w")।

+0

धन्यवाद बहुत बहुत, अपने आप को के बारे में सोचा जाना चाहिए था :) मैं केवल 9 मिनट में अपने जवाब स्वीकार कर सकते हैं, लेकिन जब मै कर सकता हूँ, मै करूँगा। –

+0

मैंने अपनी लाइन समाप्त होने के लिए "\ r \ n" से "\ n" बदल दिया है। धन्यवाद। – csonuryilmaz

18

तुम भी file_put_contents() उपयोग कर सकते हैं:

file_put_contents('ids.txt', implode("\n", $gemList) . "\n", FILE_APPEND); 
50

उपयोग PHP_EOL जो \r\n या \n आउटपुट ओएस पर निर्भर करता है।

+4

परेशानी न करें, हमेशा '\ n' का उपयोग करें जब तक कि आप किसी विशिष्ट ओएस में फ़ाइल को खोलना नहीं चाहते हैं - यदि हां, तो उस ओएस के नए संयोजन का उपयोग करें, न कि ओएस पर आप PHP चला रहे हैं ('PHP_EOL ')। –

44

PHP_EOL PHP 4.3.10 और PHP 5.0.2 के बाद PHP में एक पूर्वनिर्धारित स्थिर है। manual पोस्टिंग देखें:

इसका उपयोग करके आप क्रॉस प्लेटफार्म विकास पर अतिरिक्त कोडिंग बचाएंगे।

आईई।

$data = 'some data'.PHP_EOL; 
$fp = fopen('somefile', 'a'); 
fwrite($fp, $data); 

आप इस के माध्यम से लूप में चलाए तो दो बार आप 'somefile' में दिखाई देंगे:

some data 
some data