2010-06-14 4 views
5

Ich suche nach einer bekannten Zeichenfolge innerhalb einer anderen Zeichenfolge suchen und ersetzen. Sollte ich str_replace() oder preg_replace() verwenden? Die Zeichenfolge, würde etwas Ähnliches wie [+qStr+] sein ersetzt, [+bqID+] oder [+aID+] und es wäre ähnlich wie dies in einem Code Chunk gesucht werden:PHP, was ist die bessere Wahl für das Entfernen einer bekannten Zeichenfolge?

<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> 

würde ich die Saiten mit den Ergebnissen aus einer MySQL ersetzen Abfrage, und führen Sie diese Aktion oder ähnliches bis zu 200 Mal auf einmal. Welche Funktion str_replace() oder preg_replace() wäre die einfachste und/oder schnellste Methode.

Antwort

8

Wenn Ihre Zeichenfolge fest ist und Sie keine regulären Ausdrücke benötigen, verwenden Sie immer str_replace, da dies schneller ist. Beachten Sie außerdem, dass Sie über ereg_replace vergessen sollten und immer preg_replace verwenden sollten, da das vorherige veraltet ist.

2

Wenn Sie die Zeichenfolge kennen und keine regulären Ausdrücke benötigen, verwenden Sie str_replace(). es ist schneller, weil es nicht versuchen muss, wenn Sie eine Regex verwenden.

PS: für regex Sie preg_replace() anstelle von ereg_replace(), nur für die Zukunft nutzen sollte ...

+0

Ich sah gerade waren ereg_replace() wurde abgeschrieben. –

0

Well ereg_replace() ist veraltet wie PHP 5.3.0, so dass ich wouldn‘ t rate es zu benutzen.

str_replace() oder preg_replace() wäre die logische Alternative. Persönlich würde ich str_replace() für eine einfache Suche/ersetzen; preg_replace für alles, was komplexer ist als einfache Übereinstimmungen

Verwandte Themen