per la prima domanda usa
http://se.php.net/manual/en/function.nl2br.php

per la seconda avevo trovato questa funzione (non ricordo se sul forum o da qualche altra parte)
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;
}
spero che il forum non abbia "mangiato" nessun carattere.