scvinodkumar Posted January 4, 2011 Share Posted January 4, 2011 Hi i have validate the URL in php. I am using the below regular expression to valdiate it...for some url its working but for few url its not working...could u plz help me this is the code i am using currently function isValidURL($url) { return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url); } For example, if enter the invalid url, still it accepting, http://test Quote Link to comment https://forums.phpfreaks.com/topic/223350-validate-url/ Share on other sites More sharing options...
.josh Posted January 4, 2011 Share Posted January 4, 2011 That's because you make the rest of the parts optional. (.[a-z0-9-]+)* You require a single char and then one or more chars from the char class...but then group it (wrap it in parenthesis) and put a 0 or more quantifier on it, effectively making it optional. (:[0-9]+)? You require a : and then 1 or more numbers..but then group it and put a 0 or 1 quantifier on it, effectively making it optional. (/.*)? You require a / and then 0 or more of anything...but then group it and put a 0 or 1 quantifier on it, effectively making it optional. Just google "url regex" or similar, you will see literally a ton of results for some good url validation regexes you can use...it's a very common topic. Quote Link to comment https://forums.phpfreaks.com/topic/223350-validate-url/#findComment-1154639 Share on other sites More sharing options...
johnny86 Posted January 4, 2011 Share Posted January 4, 2011 And there is a built in PHP function for that too: filter_var($url, FILTER_VALIDATE_URL); // True if valid, else false Quote Link to comment https://forums.phpfreaks.com/topic/223350-validate-url/#findComment-1154836 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.