2010-06-14 13 views
5

Estoy buscando buscar y reemplazar una cadena conocida dentro de otra cadena. ¿Debo usar str_replace() o preg_replace()? La cadena a ser reemplazado sería algo similar a [+qStr+], [+bqID+] o [+aID+] y sería que se busca en un trozo de código similar al siguiente:PHP, ¿cuál es la mejor opción para eliminar una cadena conocida?

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

estaría Sustitución de las cuerdas con los resultados de un MySQL consulta, y realizar esta acción o similar hasta 200 veces a la vez. Qué función str_replace() o preg_replace() sería el método más fácil y/o rápido de tomar.

Respuesta

8

Si su cadena es fija, y no necesita expresiones regulares, siempre use str_replace, ya que será más rápido. Tenga en cuenta, además, que debe olvidarse de ereg_replace y siempre usar preg_replace, ya que el primero ha quedado obsoleto.

2

si conoce la cadena y no necesita expresiones regulares, use str_replace(). es más rápido porque no necesita probar si usa una expresión regular.

PS: para la expresión regular que debe utilizar preg_replace() en lugar de ereg_replace(), sólo para el futuro ...

+0

Acabo de ver que se ha depreciado ereg_replace(). –

0

Bueno ereg_replace() está en desuso a partir de PHP 5.3.0, por lo que wouldn' Aconsejamos usarlo.

str_replace() o preg_replace() serían las alternativas lógicas. Personalmente usaría str_replace() para una simple búsqueda/reemplazo; preg_replace para algo más complejo que las simples coincidencias

Cuestiones relacionadas