(2003-2009) * @author Froxlor team (2010-) * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @package Functions * @version $Id$ */ /** * Returns whether a URL is in a correct format or not * * @param string URL to be tested * @return bool * @author Christian Hoffmann * */ function validateUrl($url) { global $idna_convert; if(strtolower(substr($url, 0, 7)) != "http://" && strtolower(substr($url, 0, 8)) != "https://") { $url = 'http://' . $url; } // needs converting $url = $idna_convert->encode($url); $pattern = "/^https?:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?$/i"; if(preg_match($pattern, $url)) { return true; } // not an fqdn if(strtolower(substr($url, 0, 7)) == "http://" || strtolower(substr($url, 0, 8)) == "https://") { if(strtolower(substr($url, 0, 7)) == "http://") { $ip = strtolower(substr($url, 7)); } if(strtolower(substr($url, 0, 8)) == "https://") { $ip = strtolower(substr($url, 8)); } $ip = substr($ip, 0, strpos($ip, '/')); if(validate_ip($ip, true) !== false) { return true; } else { return false; } } else { return false; } }