我就不会PHP,现在要改一个PHP的网站,先看代码:function is_domain($domain){
if(preg_match("/^([0-9a-z\-]{1,}\.)?[0-9a-z\-]{2,}\.([0-9a-z\-]{2,}\.)?[a-z]{2,}$/i", $domain)) {
return true;
}else{
return false;
}
}
上面是一个判断URL是否合法的通用函数,但只能判断www.35926.com这样格式的网址,现在要改成可以判断一下格式网址的函数:1、http://www.35926.com/   前面加了http://要求能将http://和最后的/去掉,并判断合法
2、tool.35926.com/gogogo/gogogo/   不论加了多少层子目录,去掉最后的/后判断合法
3、http://tool.35926.com/gogogo/gogogo/   还是一样,去掉http://和最后的/后判断合法
4、www.35926.com   判断为合法
5、www.35926.com/gogo/gogo  判断为合法就是以上五种形式吧,其实我就是这样判断,能在浏览器里敲出网页的URL,去掉http://和最后的/就判断为合法,而后面加了?的,也就是跟了参数的均为不合法

解决方案 »

  1.   


    //1、http://www.35926.com/ 前面加了http://要求能将http://和最后的/去掉,并判断合法
    //2、tool.35926.com/gogogo/gogogo/ 不论加了多少层子目录,去掉最后的/后判断合法
    //3、http://tool.35926.com/gogogo/gogogo/ 还是一样,去掉http://和最后的/后判断合法
    //4、www.35926.com 判断为合法
    //5、www.35926.com/gogo/gogo 判断为合法function is_domain($domain){
    $preg = '/^(http:\/\/)?(\w+\.)+(com)(\/\w+)*(\/)?$/i';
        if(preg_match($preg, $domain)){
            echo 'aaa';//return true;
        }else{
            echo 'bbb';//return false;
        }
    }
    is_domain($s1);
      

  2.   

    //1、http://www.35926.com/ 前面加了http://要求能将http://和最后的/去掉,并判断合法
    //2、tool.35926.com/gogogo/gogogo/ 不论加了多少层子目录,去掉最后的/后判断合法
    //3、http://tool.35926.com/gogogo/gogogo/ 还是一样,去掉http://和最后的/后判断合法
    //4、www.35926.com 判断为合法
    //5、www.35926.com/gogo/gogo 判断为合法function is_domain($domain){
    $preg = '/^(http:\/\/)?(\w+\.)+(com)(\/\w+)*(\/)?$/i';
        if(preg_match($preg, $domain)){
            echo 'aaa';//return true;
        }else{
            echo 'bbb';//return false;
        }
    }
    is_domain($s1);
      

  3.   

    //1、http://www.35926.com/ 前面加了http://要求能将http://和最后的/去掉,并判断合法
    //2、tool.35926.com/gogogo/gogogo/ 不论加了多少层子目录,去掉最后的/后判断合法
    //3、http://tool.35926.com/gogogo/gogogo/ 还是一样,去掉http://和最后的/后判断合法
    //4、www.35926.com 判断为合法
    //5、www.35926.com/gogo/gogo 判断为合法function is_domain($domain){
    $preg = '/^(http:\/\/)?(\w+\.)+(com)(\/\w+)*(\/)?$/i';
        if(preg_match($preg, $domain)){
            echo 'aaa';//return true;
        }else{
            echo 'bbb';//return false;
        }
    }
    is_domain($s1);