Ver Mensaje Individual
  #30 (permalink)  
Antiguo 10/05/2011, 09:45
tonimito
 
Fecha de Ingreso: diciembre-2003
Mensajes: 157
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Reemplazar palabras exceptuando los enlaces

Cita:
Iniciado por Hidek1 Ver Mensaje
pues si estas entregando un array dentro de un string

deberias cambiar

$search[0] = '/pais/';
$search[1] = '/bonito/';

por

$search[0] = "/(<a .*?href=['\"].*?pais.*?['\"].*?>|pais)/i";
$search[1] = "/(<a .*?href=['\"].*?bonito.*?['\"].*?>|bonito)/i";


y cambiar el primer argumento de preg_replace_callback por $search

saludos.
Gracias de nuevo Hidek1,
Si utilizo el código tal y como me has dicho:

Código PHP:
$bar 'Pais es muy bonito <a href="pais"> un gran pais</a>'// palabra
$search = array();
$search[0] = "/(<a .*?href=['\"].*?pais.*?['\"].*?>|pais)/i";
$search[1] = "/(<a .*?href=['\"].*?bonito.*?['\"].*?>|bonito)/i";
$replace = array();
$replace[0] = 'chile';
$replace[1] = 'precioso';

echo 
preg_replace_callback($search,
        
create_function('$e''return $e[0] == strip_tags($e[0]) ? $GLOBALS["replace"] : $e[0];'), $bar); 

Me devuelve:
Array es muy Array <a href="pais"> un gran Array</a>

Y digo yo...¿porque demonios no puede funcionar como preg_replace o str_replace?

gracias de nuevo!
__________________
http://www.idilicstudio.com