2010-11-16 14 views
27
में पाठ फ़ाइल के लिए लिख तोड़ने

मैं निम्नलिखित परीक्षण स्क्रिप्ट:लाइन काम नहीं कर रहा है जब पीएचपी

<?php 

$myFile = "testFile.txt"; 
$fh = fopen($myFile, 'w') or die("can't open file"); 
$stringData = "Floppy Jalopy\n"; 
fwrite($fh, $stringData); 
$stringData = "Pointy Pinto\n"; 
fwrite($fh, $stringData); 
fclose($fh); 

?> 

जब तथापि चलाने के लिए और के रूप में टूट के बिना usign नोटपैड, डेटा एक पंक्ति में दिया जाता है खोला:

फ्लॉपी पुरानी गड़ी (पागल बॉक्स) नुकीले पिंटो (पागल बॉक्स)

नहीं कर सकते जहां मैं 'पागल बॉक्स' लेकिन इसके एक के लिए उपयुक्त चरित्र लगता है वास्तव में पागल बॉक्स। क्या देता है!

उत्तर

33

आप Windows नोटपैड में फ़ाइल खोलने के लिए चाहते हैं, तो आप Windows पंक्ति विराम का उपयोग करना चाहिए: \r\n

+2

काम करेंगे अगर आप इसे वर्डपैड में खोलते हैं, तो, के रूप में अन्य संपादकों के एक बहुत या तो '\ n' या' \ r \ n' के साथ सामना करेंगे, लेकिन नोटपैड उधम मचाते है। – Spudley

51

यह सबसे अच्छा है PHP_EOL उपयोग करने के लिए। यह क्रॉस-प्लेटफ़ॉर्म है, इसलिए यह वर्तमान में चल रहे प्लेटफ़ॉर्म PHP के लिए स्वचालित रूप से सही न्यूलाइन वर्ण चुनता है।

$stringData = "Floppy Jalopy" . PHP_EOL; 

PHP Constants

+7

यदि आपकी स्क्रिप्ट चलती है उसी प्लेटफ़ॉर्म पर फ़ाइलों का हमेशा उपयोग किया जाता है, तो यह 'PHP_EOL' का उपयोग करने के लिए केवल "सर्वश्रेष्ठ" है। मेरे अनुभव में अधिकांश समय जब आप डाउनलोड करने के लिए फाइलें बनाते हैं, बाद में ई-मेल या पार्स किए जाते हैं - सभी मामलों में आपको * विशिष्ट * न्यूलाइन कैरेक्टर के साथ फाइलों की आवश्यकता होती है, न कि प्लेटफॉर्म में से एक प्लेट स्क्रिप्ट पर चलती है। – AndreKR

+0

@AndreKR: सच है। –

+0

यह सबसे अच्छा जवाब प्रतीत होता है। –

1

आपका कोड ठीक चलाता है।

यदि आप विंडोज पर काम कर रहे हैं तो Notepad2 या Notepad++ का उपयोग करें। अंतर्निहित नोटपैड यूनिक्स-स्टाइल लाइन के अंतराल से निपटने में असमर्थ है।

0

। PHP_EOL; सार्वभौमिक

+0

ऐसा दोहराया जा रहा है [यह मौजूदा उत्तर] (http://stackoverflow.com/a/4196123)। – Pang

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