Os comento: Estoy intentando hacer lo siguiente:
Tengo un contenido, que es HTML, y quiero reemplazar todos los enlaces, siguiendo el siguiente criterio:Todos los que sean enlaces internos de mi Web, ponerles delante una cadena, de la carpeta que tiene que cargarMi problema es que: los href="javascript:..." y los href="http://www......" me hace reemplazo, perdiendo mis enlaces.
Me suena que un ereg_replace, puede tener condiciones de negación (usando el caracter ^) pero no lo consigo hacer funcionar.
Con el siguiente ejemplo, consigo lo que quiero
Código PHP:
<?
$dirRedirect = "espanol/html/";
$text = "<a href=\"candidato.php\">Pinchame un poco</a>";
$text = eregi_replace("(a href\=(\"|\'))", "a href=\\2".$dirRedirect, $text);
echo($dirRedirect."<br><br><br>".$text."<br><br><br>");
?>
Con el siguiente ejemplo, me mantiene bien los JAVASCRIPT, pero no hace el reemplazo que necesito
Código PHP:
<?
$dirRedirect = "espanol/html/";
$text = "<a href=\"candidato.php\">Pinchame un poco</a>";
$text.= "<br><br><br><br><br><br><a href=\"javascript:alert('Javi')\">Alertame un poco</a>";
$text.= "<br><br><br><br><br><br><a href=\"http://www.javiscript.com\">Abreme en nueva</a>";
$text.= "<br><br><br><br><br><br><a href=\"www.javiscript.com\">Abreme en nueva2</a>";
$text = eregi_replace("(a href\=(\"|\'))[^javascript]", "a href=\\2".$dirRedirect, $text);
echo($dirRedirect."<br><br><br>".$text."<br><br><br>");
?>
En este ejemplo, me hace bien el reemplazo para todo excepto para javascript
Código PHP:
<?
$dirRedirect = "espanol/html/";
$text = "<a href=\"candidato.php\">Pinchame un poco</a>";
$text.= "<br><br><br><br><br><br><a href=\"javascript:alert('Javi')\">Alertame un poco</a>";
$text.= "<br><br><br><br><br><br><a href=\"http://www.javiscript.com\">Abreme en nueva</a>";
$text.= "<br><br><br><br><br><br><a href=\"www.javiscript.com\">Abreme en nueva2</a>";
$text = eregi_replace("(a href\=(\"|\'))[^http://]", "a href=\\2".$dirRedirect, $text);
echo($dirRedirect."<br><br><br>".$text."<br><br><br>");
?>
**(NOTA: pongo un espacio en http:// para que no lo interprete como un enlace)
No se si me he explicado bien.
Espero que alguien pueda ayudarme
Gracias de antemano