PHPで文字列中にURLが含まれるか判定する。

URL形式の入力をはじきたいとき用。

$str = 'http://example.com';
preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $str);

あとは返り値で判断すればOK。