आपके द्वारा आजमाई गई सभी विविधताओं के साथ मुख्य समस्या यह है कि दोनों \n
और \r
एस्केप वर्ण हैं जो केवल तभी बच जाते हैं जब आप उन्हें दोहरे-उद्धृत स्ट्रिंग में उपयोग करते हैं ।
PHP में, '\r\n'
. के बीच एक बड़ा अंतर है और "\r\n"
. पहले में सिंगल-कोट्स और दूसरे में डबल-कोट्स नोट करें।
तो:'\r\n'
एक स्लैश, एक 'आर', एक अन्य स्लैश और एक 'एन' युक्त चार वर्ण स्ट्रिंग में परिणाम होगा, जबकि "\r\n"
इसमें दो अक्षर होंगे, जो नई लाइन और कैरिज रिटर्न कैरेक्टर होंगे।
तो आपके प्रश्न का सीधा उत्तर यह है कि आपको प्रश्न में दिए गए उदाहरणों में से दूसरे का उपयोग करने की आवश्यकता है, लेकिन एकल उद्धरणों के बजाय दोहरे उद्धरण चिह्नों के साथ:
$text = str_replace("\r\n",'', $text);
यह ध्यान देने योग्य है कि यह सभी को हटा देगा इनपुट से नई लाइनें, और उन्हें कुछ भी नहीं के साथ बदलें। यदि इनपुट में एक से अधिक नई लाइनें हैं, तो वे सभी हटा दी जाएंगी। आपके आवेदन के बारे में अधिक जाने बिना, मुझे नहीं पता कि आप यही चाहते हैं या नहीं, लेकिन यहां कुछ विचार दिए गए हैं:
-
यदि आप अंत . से केवल रिक्त रेखाएं (और अन्य सफेद स्थान) हटाना चाहते हैं इनपुट स्ट्रिंग के लिए, आप
trim()
. का उपयोग कर सकते हैं इसके बजाय कार्य करें। -
यदि आप HTML में आउटपुट के लिए फ़ॉर्मेटिंग को बरकरार रखना चाहते हैं, तो
nl2br()
समारोह आपकी मदद करेगा। यदि आप बिना फ़ॉर्मेटिंग के HTML में आउटपुट करना चाहते हैं, तो आपको उन्हें हटाने की आवश्यकता नहीं हो सकती है, क्योंकि ब्राउज़र \n वर्णों से लाइन ब्रेक प्रस्तुत नहीं करेगा। -
यदि आप नई पंक्तियों को कुछ भी नहीं के साथ बदलते हैं, तो आपके उदाहरण के अनुसार, पहली पंक्ति का अंतिम शब्द अब सीधे दूसरी पंक्ति के पहले शब्द में चला जाएगा, और इसी तरह। आप उन्हें कुछ नहीं के बजाय एक स्पेस कैरेक्टर से बदलना पसंद कर सकते हैं।
-
यह संभव है कि उपयोगकर्ता केवल
\n
. के साथ इनपुट सबमिट कर सकते हैं बिना मिलान के\r
, या इसके विपरीत (यह उनके OS या ब्राउज़र, या एक जानबूझकर हैक, या कई अन्य कारणों से हो सकता है)। अगर आप सभी को बदलना चाहते हैं इन दोनों पात्रों के उदाहरण, ऐसा करने का एक अधिक विश्वसनीय तरीका यह होगा कि उन्हें एक-दूसरे के बगल में रहने के बजाय व्यक्तिगत रूप से प्रतिस्थापित किया जाए।str_replace()
आपको उन्हें एक सरणी में निर्दिष्ट करके ऐसा करने की अनुमति देता है। आपstrtr()
. का भी उपयोग कर सकते हैं याpreg_replace()
एक ही लक्ष्य को प्राप्त करने के लिए।
आशा है कि यह मदद करता है।