2011-08-20 12 views
5

Duplicar posibles:
replace ereg_replace with preg_replacefunción de cambio a utilizar preg_replace() en lugar de ereg_replace

Tengo la siguiente función dentro de una base de código que toma una cadena y hace enlaces activos. Me he dado cuenta de que ereg_replace() es Depreciated. ¿Cómo cambiaría esto para usar preg_replace?

function makeActiveLink($originalString){ 

     $newString = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\" target=\"_blank\">\\0</a>", $originalString); 
     return $newString; 
    } 

Respuesta

1
function makeActiveLink($originalString) { 
    $pattern '#[a-z]+://[^<>\s]+[[a-z0-9]/]#i'; 
    $newString = preg_replace($pattern, '<a href="\\0" target="_blank">\\0</a>', $originalString); 

    return $newString; 
} 
4

, se puede conservar casi exactamente el mismo, pero sería preferible cambiar algunas cosas:

function makeActiveLink($originalString){ 
    $newString = preg_replace('#[a-z]+://[^<>\s]+[[a-z0-9]/]#i', '<a href="\0" target="_blank">\0</a>', $originalString); 

    return $newString; 
} 

Nota que utiliza # como delimitador porque tiene barras dentro de su cuerda.

+0

Puede usar 'A-z' en lugar de' a-zA-Z', o usar 'a-z' junto con el modificador' i' para decirle al motor de expresiones regulares que ignore el caso. –

+0

@Samir: Gracias, cambiado. – Ryan

Cuestiones relacionadas