我想比較兩個使用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