我想比较两个使用PHP的网址,确保域名是相同的。它不能是子域。它必须字面上是相同的域。示例:比较两个字符串(网址)为相同的域
http://www.google.co.uk
将验证为true
与http://www.google.co.uk/pages.html
相比较。
但
http://www.google.co.uk would
验证为false
相比http://www.something.co.uk/pages.html
。
我想比较两个使用PHP的网址,确保域名是相同的。它不能是子域。它必须字面上是相同的域。示例:比较两个字符串(网址)为相同的域
http://www.google.co.uk
将验证为true
与http://www.google.co.uk/pages.html
相比较。
但
http://www.google.co.uk would
验证为false
相比http://www.something.co.uk/pages.html
。
使用parse_url(),并将从两次调用返回的数组中的“主机”索引与parse_url()
进行比较。
谢谢 - 非常棒! – user398341
这有点旧,但可以通过使用parse_url的第二个参数来简化这个过程。 'parse_url($ url,PHP_URL_HOST)'只是给你你想要的字符串。 –
请注意:这不是检查相同网域网址的一般方法,它会失效,例如在http:// www.google.co.uk和http:// mail.google.co.uk上。 – legrass
$url1 = parse_url("http://www.google.co.uk");
$url2 = parse_url("http://www.google.co.uk/pages.html");
if ($url1['host'] == $url2['host']){
//matches
}
您可以使用parse_url这
$url1 = parse_url('http://www.google.com/page1.html');
$domain1 = $url1['host'];
$url2 = parse_url('http://www.google.com/page2.html');
$domain2 = $url2['host'];
if($domain1 == $domain2){
// something
}
简单,使用parse_url()
$url1 = parse_url('http://www.google.co.uk');
$url2 = parse_url('http://www.google.co.uk/pages.html');
if($url1['host'] == $url2['host']){
// same domain
}
,你是否复制了我的答案并更改了var名称? – genesis
大声笑,不,我没有,实际上我的第一个答案是''''hostname']'':) –
扩大阿里尔给出的答案,你可以使用代码类似如下:
<?php
compare_host('http://www.google.co.uk', 'http://www.something.co.uk/pages.html');
function compare_host($url1, $url2)
{
// PHP prior of 5.3.3 emits a warning if the URL parsing failed.
$info = @parse_url($url1);
if (empty($info)) {
return FALSE;
}
$host1 = $info['host'];
$info = @parse_url($url2);
if (empty($info)) {
return FALSE;
}
return (strtolower($host1) === strtolower($info['host']));
}
伟大的建议 - 谢谢! – user398341
看起来像一个正常的字符串比较任务给我。你的问题到底是什么? –
这不是我比较的字符串,但它的内容找到相同的域名 – user398341