Foros del Web » Programando para Internet » PHP »

Equivalente de ereg_replace a preg_replace

Estas en el tema de Equivalente de ereg_replace a preg_replace en el foro de PHP en Foros del Web. function toLink($text) { $text = html_entity_decode($text); $text = " ".$text; $text = ereg_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)','<a href="\1" target="_blank" >\1</a>', $text); $text = ereg_replace('(((f|ht){1}tps://)[-a-zA-Z0-9@:%_+.~#?&//=]+)','<a href="\1" target="_blank" >\1</a>', $text); $text ...
  #1 (permalink)  
Antiguo 30/09/2014, 14:51
 
Fecha de Ingreso: mayo-2013
Ubicación: Guadalajara
Mensajes: 53
Antigüedad: 11 años, 7 meses
Puntos: 0
Equivalente de ereg_replace a preg_replace

function toLink($text)
{
$text = html_entity_decode($text);
$text = " ".$text;
$text = ereg_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)','<a href="\1" target="_blank" >\1</a>', $text);
$text = ereg_replace('(((f|ht){1}tps://)[-a-zA-Z0-9@:%_+.~#?&//=]+)','<a href="\1" target="_blank" >\1</a>', $text);
$text = ereg_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)','\1<a href="http://\2" target="_blank">\2</a>', $text);
$text = ereg_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})','<a href="mailto:\1" target="_blank">\1</a>', $text);
return $text;
}

Tengo esta funcion pero php me dice que ereg replace es obsoleta, y al usar preg_replace no me acepta los patrones, que modificaciones deberia tener para que preg_replace la acepte?

Saludos. Gracias.
  #2 (permalink)  
Antiguo 30/09/2014, 14:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Equivalente de ereg_replace a preg_replace

Las modificaciones son pocas, básicamente los delimitadores de la expresión:

Cita:
// EREG
cualquier expresión

// PREG
#cualquier expresión#
La idea, es delimitar la expresión con algún carácter no presente en la expresión original.

Código PHP:
Ver original
  1. // MAL (ereg)
  2.  $text = ereg_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)','<a href="\1" target="_blank" >\1</a>', $text);
  3.  
  4. // BIEN (preg)
  5.  $text = preg_replace('<(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)>','<a href="\1" target="_blank" >\1</a>', $text);

Ahora, también puedes usar delimitadores pares, es decir: < y >, o [ y ], etc.

Por favor consulta el manual al respecto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: replace
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 16:01.