Ciao. Per la prima domanda non saprei. Posta il codice.
Per la seconda prova questa funzione che trova in una stringa url e indirizzi mail

codice:
function html_activate_links($str) {
  $str = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)', '\1', $str);
  $str = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)', '\1\2', $str);
  $str = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})','\1', $str);
  return $str;
}