2010-06-14 12 views
5

मैं किसी अन्य स्ट्रिंग के भीतर से ज्ञात स्ट्रिंग को खोजने और बदलने की तलाश में हूं। क्या मुझे str_replace() या preg_replace() का उपयोग करना चाहिए? स्ट्रिंग [+qStr+] को कुछ इसी तरह, [+bqID+], या [+aID+] होगा बदला जाएगा और यह इस के समान एक कोड हिस्सा में खोजी जा रही किया जाएगा:PHP, ज्ञात स्ट्रिंग को हटाने के लिए बेहतर विकल्प क्या है?

<li> [+qStr+] 
    <ol class="mcAlpha"> 
     <li><input type="radio" name="[+bqID+]" id="[+bqID+]_[+aID+]" value="[+aID+]" /><label for="[+bqID+]_[+aID+]">[+aStr+]</label></li> 
    </ol> 
</li> 

मैं एक MySQL से परिणामों के साथ तार की जगह किया जाएगा क्वेरी, और एक बार में इस कार्रवाई या 200 बार तक समान प्रदर्शन कर रहे हैं। कौन सा फ़ंक्शन str_replace() या preg_replace() लेने का सबसे आसान और/या सबसे तेज़ तरीका होगा।

उत्तर

8

यदि आपकी स्ट्रिंग तय की गई है, और आपको नियमित अभिव्यक्तियों की आवश्यकता नहीं है, तो हमेशा str_replace का उपयोग करें, क्योंकि यह तेज़ होगा। ध्यान दें कि आपको ereg_replace के बारे में भूल जाना चाहिए, और हमेशा preg_replace का उपयोग करें, क्योंकि पूर्व को बहिष्कृत कर दिया गया है।

2

यदि आप स्ट्रिंग को जानते हैं और नियमित अभिव्यक्तियों की आवश्यकता नहीं है, तो str_replace() का उपयोग करें। यह तेज़ है क्योंकि यदि आप रेगेक्स का उपयोग करते हैं तो इसे आजमाने की आवश्यकता नहीं है।

पुनश्च:) regex आप ereg_replace (के बजाय preg_replace() का उपयोग करना चाहिए, सिर्फ भविष्य के लिए के लिए ...

+0

मैंने देखा कि ereg_replace() को कम किया गया था। –

0

खैर ereg_replace() पीएचपी 5.3.0 के रूप में हटा दिया गया है, इसलिए मैं wouldn ' इसका उपयोग करने की सलाह नहीं है।

str_replace() या preg_replace() तार्किक विकल्प होंगे। व्यक्तिगत रूप से मैं एक सरल खोज/प्रतिस्थापन के लिए str_replace() का उपयोग करता हूं; सरल मैचों की तुलना में कुछ भी जटिल के लिए preg_replace