टेक्स्ट को किसी टेक्स्ट और बदले में प्रतीकों से कैसे बदलें? क्योंकि जब मैं बैकस्लैश का उपयोग करता हूं तो इसे बुरी तरह से बदल दिया जाता है।

$text = 'hello replacement world';

$text = preg_replace('#replacement#ui', '28\01\12', $text);

नतीजा

hello 28 world

पैटर्न का उपयोग करने से पहले प्रतिस्थापित करने का समाधान

$pattern = '28\01\12';
$pattern = str_replace('\\', '\\\\\\\\', $pattern);

यह सिर्फ एक उदाहरण है, वास्तविक कार्य में अधिक जटिल पैटर्न का उपयोग करने की आवश्यकता है और प्रतिस्थापन में कोई भी पाठ शामिल होगा

2
swamprunner7 16 फरवरी 2012, 21:04

2 जवाब

सबसे बढ़िया उत्तर
$text = preg_replace('#replacement#ui', '28\\01\\12', $text);

बैकस्लैश पर यहां नोट देखें: http://php.net/manual/en/ language.types.string.php

यदि आप केवल एक साधारण स्ट्रिंग को प्रतिस्थापित करने के लिए खोज रहे हैं, तो आपको इसके बजाय str_replace() का उपयोग करने पर विचार करना चाहिए। यह कम खर्चीला सीपीयू-वार है। यहां देखें: http://php.net/manual/en/function.str- बदलें.php

अपडेट करें: एस्केप सीक्वेंस के बारे में अधिक जानकारी: http: //www.php.net/manual/en/regexp.reference.escape.php

3
Jonathan M 16 फरवरी 2012, 22:38
$text = 'hello replacement world';

$text = preg_replace('#replacement#ui', '28\\01\\12', $text);

ऐसा इसलिए होता है क्योंकि आपको स्ट्रिंग में बैकस्लैश से बचना होता है।

1
Rok Kralj 16 फरवरी 2012, 21:06