2009-08-18 17 views
6

के बिना PHP लंबी स्ट्रिंग मेरे पास PHP में एक लंबी स्ट्रिंग है जिसमें नई लाइनें ('\ n') नहीं है।नई लाइन

मेरा कोडिंग सम्मेलन 100 वर्णों से अधिक लंबी लाइनों की अनुमति नहीं देता है।

क्या मेरी लंबी स्ट्रिंग को बिना किसी लाइन के कई लाइनों में विभाजित करने का कोई तरीका है। ऑपरेटर जो कम कुशल है - मुझे 2 स्ट्रिंग्स को संगत करने की आवश्यकता नहीं है क्योंकि उन्हें सिंगल स्ट्रिंग के रूप में दिया जा सकता है।

धन्यवाद!

वाई

उत्तर

0
heredoc वाक्य रचना के साथ

(या nowdoc, अपनी आवश्यकताओं पर निर्भर करता है, प्रलेखन लिंक की जांच):

$multiline = <<<EOT 
My name is "$name". I am printing some $foo->foo. 
This should print a capital 'A': \x41 
EOT; 
$singleline = str_replace("\n","",$multiline); 

लेकिन यह बेकार है ... खेद :-)

+3

हेरेडोक के साथ समस्या यह है कि इसमें स्ट्रिंग में न्यूलाइन वर्ण शामिल होंगे, जिसे "स्ट्रिंग जिसमें न्यूलाइन नहीं है" प्राप्त करने के लिए बाहर निकाला जाना होगा। – Amber

+0

आप उन्हें लियो शो –

+0

हां के रूप में पट्टी कर सकते हैं, हालांकि, कंसेटेनेशन का उपयोग करने के साथ ही प्रदर्शन प्रदर्शन भी होगा। – Amber

1

आप स्ट्रिंग से न्यूलाइन वर्णों को पट्टी कर सकता है:

$myStr = " 
    here is my string 
    and it is spread across multiple lines 
    "; 
    $myStr = str_replace("\n", "", $myStr); 

आपको चाहिए अभी भी ऐसी चीजों के लिए concatenation ऑपरेटर (।) का उपयोग करें। यदि आप ओपोड कैशिंग (एपीसी) का उपयोग कर रहे हैं तो यहां प्रदर्शन दंड नगण्य है और यह रन टाइम समीकरण में डीबी एक्सेस और अतिरिक्त तर्क (लूप सहित) लेने पर वास्तव में कुछ भी ध्यान देने योग्य नहीं होगा।

अद्यतन:

पढ़ने नीचे पेज दीजिए। उपरोक्त निष्कर्ष पाठ में आसानी से उपलब्ध नहीं है, लेकिन एक सावधानीपूर्वक परीक्षा दिखाना चाहिए कि यह मान्य है।

http://blog.golemon.com/2006/06/how-long-is-piece-of-string.html

+0

ऑपोड कैशिंग कैसे स्ट्रिंग concatenation की गति को प्रभावित करता है? –

+0

पार्सर तारों का इलाज किसी गतिशील तत्वों के साथ एक लंबी स्ट्रिंग के रूप में करेगा, जो कॉन्सटेनेशन ऑपरेटर को छोड़ देगा। मैंने थोड़ी देर पहले इस विषय में खोद दिया है। एक बार जब मैं इसे फिर से ढूंढने का प्रबंधन करता हूं तो संबंधित उत्तर के साथ इस उत्तर को अपडेट कर दूंगा। –

2

यह सही कोड, कि सभी मुद्दों को हल किया है:

$myStr = " 
    here is my string 
    and it is spread across multiple lines 
    "; 
    $myStr = str_replace(array("\r","\n"), "", $myStr); 

यह लियोर कोहेन जवाब पर आधारित है, लेकिन यह भी कैरिएज रिटर्न "\ r" स्ट्रिप्स।

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