2016-02-10 6 views
5

मैं सब्लिमे टेक्स्ट एडिटर का उपयोग कर रहा हूं। मैं validator में एक Prestashop मॉड्यूल को सत्यापित करना चाहता हूं। लेकिन यह End of line character is invalid; expected "\n" but found "\r\n" त्रुटि की त्रुटि दिखा रहा है जिसमें कोड की इस पंक्ति में केवल <?php है। मैंने विभिन्न संपादकों से "\ n" के साथ "\ r \ n" के साथ खोज और प्रतिस्थापित किया है। लेकिन यह बिल्कुल काम नहीं कर रहा है। क्या आप मुझे बता सकते हैं कि इस मुद्दे को कैसे हल किया जाए? कोई भी मदद और सुझाव वास्तव में सराहनीय होंगे। धन्यवादPHP सत्यापन समस्या पंक्ति वर्ण का अंत अमान्य है; अपेक्षित " n" लेकिन पाया " r n"

उत्तर

7

यह एक ऑपरेटिंग सिस्टम मुद्दा है। यह तब होता है जब आप क्रॉस-प्लेटफ़ॉर्म कोडिंग कर रहे होते हैं। ऑपरेटिंग सिस्टम के पास लाइन के अंत की व्याख्या करने के विभिन्न तरीके हैं। इधर, इस मदद मिल सकती है:

Convert line endings

इसके अलावा, उदात्त रूप में अच्छी तरह इस के लिए एक समाधान है। यदि आप यूनिक्स के लिए कोडिंग कर रहे हैं, तो सुनिश्चित करें कि आप यूनिक्स के लिए अपनी लाइन-ब्रेक बदल दें। View->Line Endings->Unix

यह समाधान वास्तव में थोड़ा अधिक गहराई है:

http://www.cyberciti.biz/faq/howto-unix-linux-convert-dos-newlines-cr-lf-unix-text-format/

+0

बहुत बहुत शुक्रिया। PHP Strome के लिए ऐसा कुछ है? –

+1

@TarunNagpal हां, वास्तव में PHP तूफान जो मैं उपयोग करता हूं। यूनिक्स के लिए 'फ़ाइल-> लाइन सेपरेटर्स' पर जाएं और इसे 'एलएफ' में बदलें। PHP तूफान में अधिकांश चीजों की तरह, अगर आपको ऐसा करने पर आपकी प्रोजेक्ट की मूल निर्देशिका चयनित हो गई है, तो यह आपके लिए आपकी सभी फाइलों को कन्वर्ट कर देगी। यदि आपके पास एक फ़ाइल खुली है जिसे आप संपादित कर रहे हैं, तो यह केवल एक फ़ाइल के लिए काम करेगा। आप इंडेंट्स के साथ 'एडिट-> इंडेंट कन्वर्ट' के माध्यम से भी ऐसा कर सकते हैं। –

+0

धन्यवाद, यह काम करता है !! –

0

सबसे सुरुचिपूर्ण समाधान खिड़कियों के बजाय लिनक्स के साथ कोडिंग की जाएगी - क्योंकि सीधे शब्दों में: लिनक्स एक LINEBREAK के लिए \ N का उपयोग करता है, खिड़कियां का उपयोग करता है \ r \ n

सबसे संपादकों को रूपांतरित होने नोटपैड समर्थन की तुलना में अधिक उन्नत कर रहे हैं विंडोज़ शैली से लिनक्स-स्टाइल में फ़ाइल करें। बस अपने संबंधित मेनू के माध्यम से ब्राउज़ करें।

और PHP में एक समाधान लिखा प्रदान करने के लिए:

<?php 
$input = file_get_contents("old.php"); 
$data = str_replace("\r\n", "\n", $input); 
file_put_contents("new.php"); 

क्योंकि ज्यादातर नियमित संपादकों सिर्फ चरित्र बैकस्लैश के रूप में बैकस्लैश का उपयोग और भागने के रूप में \ N व्याख्या नहीं है अपने प्रतिस्थापन शायद काम नहीं किया नतीजतन एक न्यूलाइन-चरित्र के लिए, लेकिन बस बैकस्लैश और एन के रूप में।

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