मैंने देखा है कि कई डेवलपर्स नई लाइनों द्वारा स्ट्रिंग को विभाजित करने के लिए विभिन्न विधियों का उपयोग करते हैं, लेकिन मैं उलझन में हूं जो सही है: \r\n
या \n
केवल?एक नई लाइन = n या r n है?
उत्तर
\n
यूनिक्स सिस्टम (लिनक्स और ओएसएक्स समेत) के लिए उपयोग किया जाता है।
\r\n
मुख्य रूप से विंडोज पर उपयोग किया जाता है।
\r
वास्तव में पुराने मैक पर उपयोग किया जाता है।
\ r कभी-कभी वर्तमान मैक पर भी प्रयोग किया जाता है। हालांकि, अधिकांश सादे पाठ संपादकों ने यूनिक्स शैली में स्विच किया है। – ughoavgfhw
काफी सही। उन लोगों के लिए अधिक विशिष्ट होने के लिए जो "नहीं जानते हैं," अधिकांश यूनिक्स सिस्टम "जो \ n' का उपयोग करते हैं, उनमें मैक ओएस एक्स – Wiseguy
शामिल है बस स्पष्ट होना: वास्तव में पुराने मैक का मतलब ओएस 9 के लिए कोड किए गए प्रोग्राम हैं, जिन्हें मृत घोषित किया गया था 2002. – Yuji
PHP के लिए, \ n आपके लिए काम करना चाहिए!
आप PHP में प्रोग्रामिंग रहे हैं, तो यह \n
द्वारा लाइनों विभाजित करने के लिए उपयोगी है और उसके बाद trim()
प्रत्येक पंक्ति (आप सफेद स्थान के बारे में परवाह नहीं है प्रदान की) यदि आप एक "क्लीन" लाइन परवाह किए बिना देने के लिए।
foreach($line in explode("\n", $data))
{
$line = trim($line);
...
}
दिया गया उत्तर पूर्ण से बहुत दूर है। असल में, यह अब तक पूरा नहीं हुआ है कि यह पाठक को यह विश्वास करने के लिए प्रेरित करता है कि यह उत्तर ओएस निर्भर है जब यह नहीं है। यह ऐसा कुछ भी नहीं है जो प्रोग्रामिंग भाषा निर्भर है (जैसा कि कुछ टिप्पणीकारों ने सुझाव दिया है)। मैं इसे और स्पष्ट करने के लिए अधिक जानकारी जोड़ने जा रहा हूं। सबसे पहले, की सुविधा देता है वर्तमान नई लाइन रूपों का सूची दे (के रूप में, क्या वे 1999 के बाद से किया गया है):
\r\n
केवल Windows नोटपैड, डॉस कमांड लाइन, पर प्रयोग किया जाता है Windows API का सबसे और कुछ (पुराने) विंडोज ऐप्स में।\n
अन्य सभी प्रणालियों, अनुप्रयोगों और इंटरनेट के लिए उपयोग किया जाता है।
आप देखेंगे कि मैं \n
समूह में सबसे विंडोज क्षुधा थोड़ा विवादास्पद हो सकता है लेकिन इससे पहले कि आप इस कथन से असहमत हैं, एक UNIX स्वरूपित पाठ फ़ाइल हड़पने और 10 वेब के अनुकूल Windows में यह प्रयास करें जो रख दिया है आपकी पसंद के अनुप्रयोग (जो उपरोक्त मेरे अपवादों में सूचीबद्ध नहीं हैं)। उनमें से किस प्रतिशत ने इसे ठीक से संभाला? आप पाएंगे कि वे (व्यावहारिक रूप से) सभी लाइन अंतराल के ऑटो डिटेक्शन को लागू करते हैं या बस \n
का उपयोग करते हैं, जबकि विंडोज \r\n
का उपयोग कर सकते हैं, इंटरनेट \n
का उपयोग करता है। इसलिए, यदि आप अपने आउटपुट को इंटरनेट के अनुकूल बनाना चाहते हैं तो अनुप्रयोगों के लिए \n
अकेले उपयोग करने के लिए यह सर्वोत्तम अभ्यास है।
PHP PHP_EOL
नामक एक न्यूलाइन चरित्र को भी परिभाषित करता है। यह स्थिरता मशीन के लिए ओएस विशिष्ट न्यूलाइन स्ट्रिंग पर सेट है (विंडोज़ के लिए \r\n
और अन्य सभी चीज़ों के लिए \n
)। यह निरंतर वेबपृष्ठों के लिए बहुत उपयोगी नहीं है और HTML आउटपुट के लिए या फ़ाइलों को अधिकतर टेक्स्ट लिखने से बचा जाना चाहिए। जब हम PHP अनुप्रयोगों से कमांड लाइन आउटपुट में जाते हैं तो यह बहुत उपयोगी हो जाता है क्योंकि यह आपके एप्लिकेशन को सभी समर्थित ओएस में लगातार तरीके से टर्मिनल विंडो में आउटपुट करने की अनुमति देगा।
यदि आप चाहते हैं किसी भी सर्वर वे पर रखा जाता है से काम करने के लिए अपने PHP अनुप्रयोगों, दो सबसे बड़ी बातें याद करने के लिए कर रहे हैं कि आप हमेशा सिर्फ \n
का उपयोग करना चाहिए, जब तक यह टर्मिनल निर्गम (जिस स्थिति में आप PHP_EOL का उपयोग करें) है और आपको हमेशा अपने पथ विभाजक (\
) के लिए /
का उपयोग करना चाहिए।
भी लंबे समय तक स्पष्टीकरण:
एक आवेदन का उपयोग करने के लिए जो भी लाइन अंत यह डिफ़ॉल्ट ओएस लाइन शैली समाप्त होने की परवाह किए बिना पसंद करती है चुन सकते हैं। अगर मैं अपने टेक्स्ट एडिटर को एक नई लाइन मुद्रित करना चाहता हूं, तो हर बार यह उस अवधि से मुकाबला करता है जो \n
का उपयोग करने के लिए एक नई लाइन का प्रतिनिधित्व करने के लिए कठिन नहीं है क्योंकि मैं टेक्स्ट को व्याख्या कर रहा हूं क्योंकि मैं इसे वैसे भी प्रदर्शित करता हूं। IOW, मैं प्रत्येक चरित्र की चौड़ाई को मापने के साथ चारों ओर झुका रहा हूं, इसलिए यह जानता है कि अगला कहां प्रदर्शित करना है, इसलिए यह बयान जोड़ना बहुत आसान है कि यदि वर्तमान चार अवधि है तो एक नई कार्यवाही करें (या यदि यह है एक \n
फिर एक अवधि प्रदर्शित करें)।
शून्य टर्मिनेटर के अलावा, कोई वर्ण कोड पवित्र नहीं है और जब आप कोई टेक्स्ट एडिटर या दर्शक लिखते हैं तो आप स्क्रीन पर ग्लाइफ (या कैरिज रिटर्न) में अपनी फ़ाइल में बिट्स का अनुवाद करने के प्रभारी होते हैं। एकमात्र चीज जो नियंत्रण चरित्र को अलग करती है जैसे अन्य पात्रों की नई रेखा यह है कि अधिकांश फ़ॉन्ट सेटों में उन्हें शामिल नहीं किया जाता है (जिसका अर्थ है कि उनके पास दृश्य प्रतिनिधित्व उपलब्ध नहीं है)।
कहा जा रहा है कि, यदि आप उच्च स्तर के अमूर्तता पर काम कर रहे हैं तो शायद आप अपना टेक्स्टबॉक्स नियंत्रण नहीं बना रहे हैं। यदि यह मामला है तो आप जो भी लाइन समाप्त कर रहे हैं, उसके साथ आप अटक जाते हैं। यहां तक कि इस मामले में किसी भी स्ट्रिंग की लाइन समाप्ति शैली को स्वचालित रूप से पहचानना और नियंत्रण में अपना टेक्स्ट लोड करने से पहले रूपांतरण करना एक साधारण बात है और फिर जब आप उस नियंत्रण से पढ़ते हैं तो इसे पूर्ववत करें। मतलब, कि यदि आप डेस्कटॉप एप्लिकेशन देव हैं और आपका एप्लिकेशन \n
को एक नई लाइन के रूप में नहीं पहचानता है तो यह बहुत ही अनुकूल एप्लिकेशन नहीं है और आपको वास्तव में कोई बहाना नहीं है क्योंकि इसे सही तरीके से बनाना मुश्किल नहीं है। इसका यह भी अर्थ है कि जो भी नोटपैड ने लिखा वह खुद से शर्मिंदा होना चाहिए क्योंकि यह वास्तव में बहुत बेहतर करना बहुत आसान है और बहुत से लोग इसे हर दिन इस्तेमाल करते हैं।
"आपको हमेशा टर्मिनल आउटपुट होने तक \ n' 'का उपयोग करना चाहिए" - मुझे संदेह था, लेकिन तर्क पर यह स्पष्टता सिर्फ वही है जो मैं ढूंढ रहा था। – sfarbota
आप कथन के साथ रास्ते से बाहर हैं "\ n अन्य सभी प्रणालियों, अनुप्रयोगों और इंटरनेट के लिए प्रयोग किया जाता है।" कई इंटरनेट प्रोटोकॉल के लिए \ r \ n लाइन समाप्ति एचटीपी हेडर को \ r \ n के साथ समाप्त करने की आवश्यकता होती है और हेडर और संदेश को \ r \ n – Raatje
से अलग किया जाना चाहिए HTTP (7230), SMTP (RFC5321), पीओपी 3 (आरएफसी 1 9 3 9) और ईमेल (आरएफसी 2822) जो राज्य \ r \ n लाइन एंडिंग के लिए जरूरी है – Raatje
- 1. "\ r" n "0 \ n"
- 2. Regex \ r पट्टी और \ n या \ r \ n
- 3. \ r से \ r \ n
- 4. jQuery नई लाइन \ N
- 5. विम: \ n बनाम \ r
- 6. \ n और \ r \ n के बीच क्या अंतर है?
- 7. नई लाइन कमांड (\ n) टॉमकैट
- 8. नई लाइन "\ n" YAML फ़ाइल
- 9. रेल FasterCSV "unquoted फ़ील्ड \ r या \ n"
- 10. "\ n" विंडोज़ पर एक नई लाइन क्यों देता है?
- 11. जेसन प्रतिक्रिया में \ n \ r
- 12. धाराएं, stream_bufs, codecvt facets और \ n to \ r \ n अनुवाद
- 13. सी ++ में '\ n' या "\ n" के बीच क्या अंतर है?
- 14. सिल्वरलाइट टेक्स्टबॉक्स पर्यावरण के बजाय एक नई लाइन के लिए \ r क्यों उपयोग करता है। NEWLINE (\ r \ n)?
- 15. एक नई लाइन के बजाय '\ n' कैसे मुद्रित करें?
- 16. एएसपी लाइन ब्रेक - \ n?
- 17. PHP में नई लाइन ("\ n") काम नहीं कर रही है
- 18. छोड़ कैसे `\ r \ n` स्ट्रिंग में
- 19. php \ r और \ n वही बात?
- 20. एनएसएसटींग isEqualToString है: \ n
- 21. मैं कैसे पता लगा सकता हूं कि फ़ाइल में यूनिक्स लाइन फ़ीड्स (\ n) या Windows लाइन फ़ीड्स (\ r \ n) है या नहीं?
- 22. डबल या अधिक खाली लाइनों द्वारा विभाजित कैसे करें? <code>"hello1\r\nhello2\r\n\r\nhello3\r\n\r\n\r\nhello4"</code> लिए: Regex.Stplit अवांछित तार
- 23. PHP: \ n
- 24. n डिग्री है, जहां n 90
- 25. ConfigurationManager.AppSettings "\ n" से "\\ n" क्यों परिवर्तित करें?
- 26. 'n = n' का उद्देश्य क्या है?
- 27. \ n और \ r के बीच क्या अंतर है?
- 28. रूबी सीएसवी समझ में नहीं आता \ r \ n पंक्ति अंत
- 29. क्या विंडोज कैरिज रिटर्न \ r \ n में दो अक्षर या एक वर्ण शामिल है?
- 30. कॉमा या नई लाइन
मैंने कभी भी \ \ \ r' नहीं देखा है। आमतौर पर यह \ r \ n' होता है यदि वे दो का उपयोग कर रहे हैं। – icktoofay
यह वास्तव में आपके द्वारा प्रसंस्करण की जा रही फ़ाइल/स्ट्रिंग के प्रारूप पर निर्भर करता है। – MrGlass
यदि आप मूल सिस्टम ईओएल चरित्र को अपने तारों में एम्बेड करना चाहते हैं तो एक PHP_EOL निरंतर उपलब्ध है। यदि आप अन्य सिस्टम से आए पाठ से निपट रहे हैं, तो बहुत मदद नहीं करता है। –