$name = 'www.baidu.com';
我想把这个地址和 数据库里的 地址对比 
请问怎么做比较好
注意 网站不可能总是www.baidu.com 有可能是
baidu.com  baidu.com/ www.baidu.com/ 有这种情况 怎么才能做到
select * from table where url like '%url%' 我本来是用这种方法
不过这种方法不合理 因为 数据库里如果一旦要是有 www.abaidu.com 他也会提示地址重复
数据库里实际上是有www.abaidu.com 而没有www.baidu.com

解决方案 »

  1.   

    用下面的函数把XXX.com这部分提取出来,然后精确匹配。
      

  2.   

    if(strpos($haystack, $needle) !== false && $haystack == $needle){
        exit('相同';
    }
      

  3.   

    数据库也有正则函数的,SELECT * from table where url REGEXP '(www.)?baidu.com/?';
      

  4.   

    正则都是一样的写法,
    还有应该感谢5楼的兄弟提醒,不过5楼的代码需要修改一下,不然还是达不到要求SELECT * from `表名` where `URL字段` REGEXP '^(http://)?(www.)?baidu.com(/)?'
    表名改成你的数据表,比如你的数据表为table
    URL字段为你们的存储url的字符,比如url
    REGEXP是数据库正则匹配
    ^(http://)?(www.)?baidu.com(/)?:跟平常的正则没什么不同