2011-03-09 12 views

उत्तर

36

str_replace एक तार का एक विशिष्ट घटना की जगह, उदाहरण के "foo" केवल मेल खाते हैं और उस स्थान लेगा: "foo"। preg_replace नियमित अभिव्यक्ति मिलान करेगा, उदाहरण के लिए "/f.{2}/" मिलान करेगा और "foo" को प्रतिस्थापित करेगा, लेकिन "fey", "fir", "fox", "f12", आदि

[संपादित करें]

खुद के लिए देखें:

$string = "foo fighters"; 
$str_replace = str_replace('foo','bar',$string); 
$preg_replace = preg_replace('/f.{2}/','bar',$string); 
echo 'str_replace: ' . $str_replace . ', preg_replace: ' . $preg_replace; 

उत्पादन होता है:

str_replace: बार सेनानियों, preg_replace: बार barhters

:)

+0

हम्म, वास्तव में preg_replace लाभ नहीं देख रहा है, थोड़ा हिट लगता है! – benhowdle89

+12

आपने फायदे के बारे में नहीं पूछा, बल्कि दोनों के बीच का अंतर: डी – mingos

+0

शिकायत नहीं! बस एक अवलोकन ... – benhowdle89

12

str_replace सिर्फ एक और तय तार के साथ एक निश्चित स्ट्रिंग का स्थान ले लेगा, और यह बहुत तेजी से किया जाएगा।

नियमित अभिव्यक्ति फ़ंक्शन आपको गैर-निश्चित पैटर्न regular expression नामक पैटर्न के साथ खोजने और बदलने की अनुमति देता है। नियमित अभिव्यक्ति के कई "स्वाद" हैं जो अधिकतर समान होते हैं लेकिन कुछ विवरण भिन्न होते हैं; जिस बारे में हम यहां बात कर रहे हैं वह पर्ल संगत नियमित अभिव्यक्तियां है (PCRE)।

अगर वे आप के लिए एक ही लग रही है, तो आप str_replace उपयोग करना चाहिए।

+0

अच्छी तरह से यह गतिशील खोजें पैटर्न आप नहीं जानता में के लिए अच्छा है, लेकिन अगर आप पैटर्न (यहां तक ​​कि रनटाइम के दौरान अगर) पता है कि तुम ठीक तो बटन बना सकते हैं और जब तक आप विभिन्न भागों एक ही समय में catched किया जाना चाहते हैं str_ कर सकते हैं । – My1

3

str_replace पैटर्न के लिए, जबकि preg_replace शुद्ध पाठ आवृत्तियां के लिए खोज करता है।