PHP already has a filter (FILTER_VALIDATE_URL) for validating urls using filter_var[0], however, it doesn't work on international URLs. You can also break up a url with parse_url()[1]
You might also want to look into PHP's curl wrapper which is a lot more powerful[2].
Some problems I've found are: redirects and non 200 status codes.
I plan on redoing the whole thing in JavaScript or any other client side technology and add color coding.