我有一个情况,我正在检查用户提交的URL是否已经存在于数据库中。我关心的是用户可以以不同的格式提交相同的网址。 例如URL http://mysite.com/rahul/palake/?&test=1 & URL http://www.mysite.com/rahul/palake/?&test=1应该被认为是一个一样的。如果我已经在我的数据库中存储了url为http://mysite.com/rahul/palake/?&test=1,那么在数据库中搜索url http://www.mysite.com/rahul/palake/?&test=1应该会给我留言,因为url已经存在。为此,我使用以下代码,下面的代码适用于我,我想确保它涵盖所有可能的场景?或者这个代码可以即兴创作?如何检查PHP数据库中是否已经存在url?
$url="http://dev.mysite.com/rahul/palake/?&test=1";
$parse_url=parse_url($url);
//first check if www is present in url or not
if(!strstr($parse_url['host'],'www'))
{
$scheme=trim($parse_url['scheme']);
//assign default scheme as http if scheme is not defined
if($scheme =='')
$scheme='http';
//create new url with 'www' embeded in it
$url1=str_replace($scheme."://",$scheme."://www.",$url);
//now $url1 should be like this http://www.mysite.com/rahul/palake/?&test=1
}
//so that $url && $url1 should be considered as one and the same
//i.e. mysite.com/rahul/palake/?&test=1 is equivalent to www.mysite.com/rahul/palake/?&test=1
//should also be equivalent to http://mysite.com/rahul/palake/?&test=1
//code to check url already exists in database goes here
//here I will be checking if table.url like $url or table.url like $url1
//if record found then return msg as url already exists
一般来说,不能保证“www.somesite.com”和“somesite。com“是相当的,顺便说一下... – Dmitri 2012-03-02 14:52:32