Foros del Web » Programando para Internet » PHP »

Problemas con preg_replace()

Estas en el tema de Problemas con preg_replace() en el foro de PHP en Foros del Web. Hola a todos en Foros del Web, bueno, les traigo por aquí un problema que no comprendo realmente... llevo ya 1 hora promedio intentando arreglarlo ...
  #1 (permalink)  
Antiguo 12/11/2011, 17:42
 
Fecha de Ingreso: octubre-2009
Mensajes: 25
Antigüedad: 14 años, 7 meses
Puntos: 5
Problemas con preg_replace()

Hola a todos en Foros del Web, bueno, les traigo por aquí un problema que no comprendo realmente... llevo ya 1 hora promedio intentando arreglarlo pero simplemente no puedo y ya busque demasiado en Google y no comprendo las respuestas, así que ya por último me he decidido a pedir ayuda

Bueno, mi problema es que descargué un script el cual trabaja como el sistema de "muro" de Facebook, el código está horrible, funciones viejas y 'deprecated', así que me puse a limpiarlo y mejorarlo para que pueda ser implementado en casi cualquier página, por desgracia una función 'deprecated' (eregi_replace()) estaba aquí, la cual convierte, en una string, las urls que puedan haber, pero como está ya marcada para PHP 5.3.0 como deprecated, pues la reemplacé con preg_replace() como dice en el manual de PHP, sin embargo me tira el siguiente error:

Cita:
Warning: preg_replace() [function.preg-replace]: Unknown modifier '(' in ..\includes\Class.Wall.php on line 66
Ahora bien, el código es:

Código PHP:
public function toLink($text){
        
$text html_entity_decode(trim($text));
        
$text " ".$text;
        
$text preg_replace("(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"'<a href="\\1">\\1</a>'$text);
        
$text preg_replace("(((f|ht){1}tps://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)",'<a href="\\1">\\1</a>'$text);
        
$text preg_replace("([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)",'\\1<a href="http://\\2">\\2</a>'$text);
        
$text preg_replace("([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})",'<a href="mailto:\\1">\\1</a>'$text);
        return 
$text;
    } 
La línea 66 es:

Código PHP:
$text preg_replace("([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)",'\\1<a href="http://\\2">\\2</a>'$text); 
Espero me puedan ayudar a resolver este problema ^^.

De antemano, muchas gracias.
  #2 (permalink)  
Antiguo 12/11/2011, 18:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problemas con preg_replace()

Lee lo siguiente: http://www.forosdelweb.com/f18/aport...s-pcre-646110/

Adicional a cambiar preg, por ereg, tienes que ajustar la expresión regular, ya que ambas no son las mismas.

Saludos.
  #3 (permalink)  
Antiguo 12/11/2011, 20:18
 
Fecha de Ingreso: octubre-2009
Mensajes: 25
Antigüedad: 14 años, 7 meses
Puntos: 5
Respuesta: Problemas con preg_replace()

Muchas gracias GatorV ;) ya lo logré arreglar :).
Dejo el código arreglado por si a alguien le sirve en algún momento:

Código PHP:
public static function toLink($text)
    {
        
$text html_entity_decode($text);
        
$text " ".$text;
        
$text preg_replace('/(((f|ht){1}tp:\/\/)[-a-zA-Z0-9@:%_\+.~#?&\/\/=]+)/i','\\1'$text);
        
$text preg_replace('/(((f|ht){1}tps:\/\/)[-a-zA-Z0-9@:%_\+.~#?&\/\/=]+)/i','\\1'$text);
        
$text preg_replace('/([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&\/\/=]+)/i','\\1\\2'$text);
        
$text preg_replace('/([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})/i','\\1'$text);
            return 
$text;
    } 

Etiquetas: html
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:41.