Hola, uso esta función:
// match protocol://address/path/
$subtitulo = ereg_replace("[a-zA-Z]+://([.]?[a-zA-Z0-9_/-])*", "<a
href=\"\\0\"><span id=\"ad\">\\0</a></span>", $subtitulo);
// match www.something
$subtitulo = ereg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)", "\\1<a
href=\"http://\\2\"><span id=\"ad\">\\2</a></span>", $subtitulo);
Para cambiar las urls por hiperenlaces (es decir, cuando se escribe http:/www.algo pone automáticamente el <a href...>).
El tema es que cuando la url es del tipo http://web.php?sec=12&cod=12 se deja el interrogante fuera. ¿No se puede hacer que vaya desde http al siguiente espacio por ejemplo?