Skip to content

Instantly share code, notes, and snippets.

@akmandev
Last active December 23, 2016 12:34
Show Gist options
  • Save akmandev/2ea36f230afc6f329ff8 to your computer and use it in GitHub Desktop.
Save akmandev/2ea36f230afc6f329ff8 to your computer and use it in GitHub Desktop.
Perfect URL Validation with Regex
<?php
// Regex Pattern By Diego Perini (https://gist.github.com/dperini/729294)
$url = 'http://github.com';
if(!preg_match('_^(?:(?:https?|ftp)://)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)(?:\.(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)*(?:\.(?:[a-z\x{00a1}-\x{ffff}]{2,})))(?::\d{2,5})?(?:/[^\s]*)?$_iuS',$url){
echo $url. ' is NOT a valid URL';
}else{
echo $url. ' is a valid URL';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment