Foros del Web » Programando para Internet » PHP »

no funciona el str_replace() con array

Estas en el tema de no funciona el str_replace() con array en el foro de PHP en Foros del Web. Amigos, No se que estaré haciendo mal, tengo lo siguiente: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original //pongo las palabras que debe buscar y reemplazar en ...
  #1 (permalink)  
Antiguo 12/07/2011, 10:42
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
no funciona el str_replace() con array

Amigos,

No se que estaré haciendo mal, tengo lo siguiente:
Código PHP:
Ver original
  1. //pongo las palabras que debe buscar y reemplazar en un array
  2. $palabras = array('palabra1' => '<strong>palabra1</strong>','palabra2' => '<strong>palabra2</strong>');
  3. // hago el query mysql
  4. $sql = mysql_query("SELECT * FROM contenido ORDER BY id ASC");
  5. while ($echo = mysql_fetch_array($sql)){
  6.     foreach($palabras as $key => $value) {
  7.         echo str_replace($key,$value,$echo['articulo']);
  8.     }
  9. }

El inconveniente es que no me cambia todas las palabras solo la primera palabra (es decir palabra1) puesta en un array.

Porque?
__________________
~# echo Hemos logrado la independencia, pero no la libertad >> SimonBolivar
  #2 (permalink)  
Antiguo 13/07/2011, 02:02
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: no funciona el str_replace() con array

Buenas,

Tienes un fallo de concepto, ese foreach se repite dos veces, ya que el array tienes dos elementos, pero lo que haces dentro del foreach es imprimir el resultado de str_replace, luego la primera vez que entre imprime el texto con el primer cambio y la segunda vez que entre lo imprime con el segundo cambio, pero nunca lo imprime con los dos, porque $echo['articulo'] nunca se almacena.

Podrías hacerlo así:
Código PHP:
while ($echo mysql_fetch_array($sql)) {
    
$articulo $echo['articulo'];
    foreach (
$palabras as $key => $value)  {
        
$articulo str_replace($key$value$articulo);
    }
    echo 
$articulo;

Espero que te sirva, un saludo.

Etiquetas: mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:58.