के रूप में मिलान का उपयोग करके किसी सरणी से प्रतिस्थापन ढूंढना मेरे पास एक स्ट्रिंग है जिसमें एकाधिक मिलान (प्रतिशत अंक से घिरा कोई भी शब्द) और प्रतिस्थापन की एक सरणी हो सकती है - वे प्रत्येक प्रतिस्थापन की कुंजी हैं रेगेक्स कुछ कोड शायद समझा जाएगा कि बेहतर ...PHP preg_replace - कुंजी
$str = "PHP %foo% my %bar% in!";
$rep = array(
'foo' => 'does',
'bar' => 'head'
);
वांछित परिणाम जा रहा है:
$str = "PHP does my head in!"
मैं निम्नलिखित की कोशिश की है, जिनमें से कोई भी काम:
$res = preg_replace('/\%([a-z_]+)\%/', $rep[$1], $str);
$res = preg_replace('/\%([a-z_]+)\%/', $rep['$1'], $str);
$res = preg_replace('/\%([a-z_]+)\%/', $rep[\1], $str);
$res = preg_replace('/\%([a-z_]+)\%/', $rep['\1'], $str);
इस प्रकार मैं बारी मदद के लिए ओवरफ्लो ढेर करने के लिए। कोई लेने वाला?
'ई' संशोधक PHP 5.5 के बाद से "बहिष्कृत और उपयोग अत्यधिक निराश" है। इस जवाब में उद्धृत दस्तावेज़ों के मुताबिक। Preg_replace_callback() का उपयोग करके एक वैकल्पिक समाधान प्रस्तुत किया गया है [यहां] (http://stackoverflow.com/questions/16237882/preg-replace-using-pattern-as-index-of-replacement-data-array) – user9645
और 'e 'संशोधक PHP 7.0.0 के रूप में हटा दिया गया है। – Jpsy