Cita:
Iniciado por Hidek1 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!