Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/09/2004, 21:05
Avatar de yoseman
yoseman
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 4 meses
Puntos: 5
Puede ser porque hayas puesto sólo un slashback para la representación de las subcadenas en la expresión regular?
Código PHP:
   $urlRemplazarArray = array("\1[url]\2\4[/url]"
        
"[url]\1\3[/url]" 
        
); 
    
$emailRemplazarArray = array("\1[mail]\2[/mail]"
        
"[mail]\0[/mail]" 
        
); 
No entiendo mucho de expresiones regulares y lo mismo estoy diciendo una tontería pero creo que para posicionar subcadenas hay que anteponer al numerito un doble slashback...

Código PHP:
    $urlRemplazarArray = array("\\1[url]\\2\\4[/url]"
        
"[url]\\1\\3[/url]" 
        
); 
    
$emailRemplazarArray = array("\\1[mail]\\2[/mail]"
        
"[mail]\\0[/mail]" 
        
); 
Por lo demás no sé, a ver si tenemos suerte y es eso, sino ya no sé.
Yo tengo una especie de parseador de bbcode para que convierta urls y mails en su correspondiente HTML pero le puse unos códigos que usan los foros phpbb (en la función includes/bbcode.php por si lo quieres hojear) que simplemente sustituyen el mail por un <a href="mailto:...etc:
Código PHP:
    $campo preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is""\\1<a href=\"\\2\" target=\"_blank\">\\2</a>"$campo);
    
$campo preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is""\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>"$campo);
    
$campo preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i""\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>"$campo); 
En fin saludos lamento no poder ayudarte más.
__________________
[+]
[+]

Última edición por yoseman; 16/09/2004 a las 21:10