LAST EDIT: Monday, May 5th, 2008

PHP Function: is_url

A PHP function used to verify URLs.

/**
 * Sanity check, is it really an URL?
 */
function is_url($url){
    $url = substr($url,-1) == "/" ? substr($url,0,-1) : $url;
    if ( !$url || $url=="" ) return false;
    if ( !( $parts = @parse_url( $url ) ) ) return false;
    else {
        if ( $parts[scheme] != "http" && $parts[scheme] != "https" && $parts[scheme] != "ftp" && $parts[scheme] != "gopher" ) return false;
        else if ( !eregi( "^[0-9a-z]([-.]?[0-9a-z])*.[a-z]{2,4}$", $parts[host], $regs ) ) return false;
        else if ( !eregi( "^([0-9a-z-]|[_])*$", $parts[user], $regs ) ) return false;
        else if ( !eregi( "^([0-9a-z-]|[_])*$", $parts[pass], $regs ) ) return false;
        else if ( !eregi( "^[0-9a-z/_.@~-]*$", $parts[path], $regs ) ) return false;
        else if ( !eregi( "^[0-9a-z?&=#,]*$", $parts[query], $regs ) ) return false;
    }
    return true;
}

Example usage

/**
 * Prints: true
 */
if (is_url('http://crunchbang.org')) echo 'true'; else echo 'false';
/**
 * Prints: true
 */
if (is_url('https://crunchbang.org')) echo 'true'; else echo 'false';
/**
 * Prints: false
 */
if (is_url('www.crunchbang.org')) echo 'true'; else echo 'false';
/**
 * Prints: false
 */
if (is_url('crunchbang.org')) echo 'true'; else echo 'false';
/**
 * Prints: false
 */
if (!is_url('http://www.crunchbang.org')) echo 'true'; else echo 'false';

External Links

Tagged with: code, php, webdevelopment


Add Your Comment

Use the form below to add your comment. Markdown syntax is available. Note, comments are moderated by me for spam filtering. Alternatively, feel free to contact me privately.