PHP में फाइल करने के लिए एक नई लाइन लिखना (लाइन फीड)


109

मेरा कोड:

$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एक स्ट्रिंग के रूप में लिख रहा है, इसलिए फ़ाइल इस तरह दिखती है:

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

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

40119
40122
40120
42155
36925
45881
42145
45880

धन्यवाद।

जवाबों:


278

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

मैनुअल देखें ।

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


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

अब मेरी कोड दोनों का उपयोग करता है "और 'और यह मुझे परेशान
श्री PizzaGuy

वास्तव में, आप वास्तव में नोटिस कर सकते हैं कि \ n "" का उपयोग करते समय हाइलाइट हो जाता है, लेकिन '' का उपयोग करते समय नहीं। (यह है, अगर आपका संपादक सिंटैक्स हाइलाइटिंग का उपयोग करता है, तो मेरा उदात्त पाठ 3 है)
DarkVeneno

68

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


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

60

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

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

अर्थात।

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

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

some data
some data

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.