2010-06-14 6 views
5

Je cherche à chercher et remplacer une chaîne connue dans une autre chaîne. Dois-je utiliser str_replace() ou preg_replace()? La chaîne à remplacer serait quelque chose de similaire à [+qStr+], [+bqID+] ou [+aID+] et il serait recherché dans un morceau de code similaire à ceci:PHP, quel est le meilleur choix pour supprimer une chaîne connue?

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

Je remplacerai les cordes avec les résultats d'un MySQL requête, et effectuer cette action ou similaire jusqu'à 200 fois à la fois. La fonction str_replace() ou preg_replace() serait la méthode la plus simple et/ou la plus rapide à prendre.

Répondre

8

Si votre chaîne est fixe et que vous n'avez pas besoin d'expressions régulières, utilisez toujours str_replace, car elle sera plus rapide. Notez en outre que vous devriez oublier ereg_replace, et toujours utiliser preg_replace, car le premier a été déprécié.

2

Si vous connaissez la chaîne et n'avez pas besoin d'expressions régulières, utilisez str_replace(). c'est plus rapide car il n'a pas besoin d'essayer si vous utilisez une regex.

PS: pour regex vous devez utiliser preg_replace() au lieu de ereg_replace(), juste pour l'avenir ...

+0

Je viens de voir que ereg_replace() avait été déprécié. –

0

bien ereg_replace() est dépréciée depuis PHP 5.3.0, donc je n » t conseille de l'utiliser. Str_replace() ou preg_replace() seraient les alternatives logiques. Personnellement, j'utiliserais str_replace() pour une simple recherche/remplacement; preg_replace pour quelque chose de plus complexe que de simples correspondances