Foros del Web » Programando para Internet » PHP »

Problema con eregi_replace

Estas en el tema de Problema con eregi_replace en el foro de PHP en Foros del Web. Hola a todos. Os comento: Estoy intentando hacer lo siguiente: Tengo un contenido, que es HTML, y quiero reemplazar todos los enlaces, siguiendo el siguiente ...
  #1 (permalink)  
Antiguo 15/02/2007, 12:37
Avatar de el_javi  
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 1 mes
Puntos: 10
Problema con eregi_replace

Hola a todos.

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 cargar
Mi 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>");
?>
Elemento a destacar de la Regex: (a href\=(\"|\'))[^javascript]

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>");
?>
Elemento a destacar de la Regex: (a href\=(\"|\'))[^h ttp://]
**(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

  #2 (permalink)  
Antiguo 16/02/2007, 02:55
Avatar de el_javi  
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 1 mes
Puntos: 10
Re: Problema con eregi_replace

Hola... Porfavor, alguien que pueda ayudarme con este problema?

Esque me corre bastante prisa, y no se como atacarlo...

Gracias de antemano.

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 18:16.