如何比较URL字符串中的两个域名?

时间:2014-05-09 15:42:20

标签: php regex

说我有两个字符串

$first = 'http://www.example.com';
$second = 'www.example.com/';

我怎么能确定它们匹配?我只关心example部分匹配。我认为某种形式的正则表达式会匹配,但我根本无法理解。

2 个答案:

答案 0 :(得分:2)

如果您正在尝试评估结构化数据,请不要使用正则表达式。正则表达不是一个魔术棒,你会在涉及字符串的每个问题上挥手。如果您有http://www.some-other-domain.com/blah/blah/?www.example.com的网址

,该怎么办?

如果您尝试将域名与域名匹配,请将网址拆分以获取主机并进行比较。在PHP中,使用parse_url函数。这将为您提供www.example.com作为主机名,然后您可以对其进行比较以确保它是您期望的主机名。

答案 1 :(得分:-1)

试试这个

function DomainUrl($x) {
   $url = $x;
   if ( substr($url, 0, 7) == 'http://') { $url = substr($url, 7); }
   if ( substr($url, 0, 8) == 'https://') { $url = substr($url, 8); }
   if ( substr($url, 0, 4) == 'www.') { $url = substr($url, 4); }
   if ( substr($url, 0, 4) == 'www9.') { $url = substr($url, 4); }
   if ( strpos($url, '/') !== false) {
      $ex = explode('/', $url);
      $url = $ex['0'];
   }

      return $url;
}

$first = DomainUrl('http://www.example.com');
$second = DomainUrl('www.example.com/');

if($first == $second){
echo 'Match';
}else{
echo 'Not Match';

}