Ответ 1
Это делается с помощью parse_url
:
$host = parse_url($domain, PHP_URL_HOST);
if($host == 'www.google.com') {
// do something
}
Мне нужно взять переменную, содержащую URL-адрес, и проверить, соответствует ли домен определенному домену, если он это делает, эхо-одну переменную, если нет, повторить другое.
$domain = "http://www.google.com/docs";
if ($domain == google.com)
{ echo "yes"; }
else
{ echo "no"; }
Я не уверен, как написать вторую строку, где он проверяет домен, чтобы узнать, содержит ли $domain url в выражении if.
Это делается с помощью parse_url
:
$host = parse_url($domain, PHP_URL_HOST);
if($host == 'www.google.com') {
// do something
}
Немного более продвинутая функция поиска домена.
$address = "http://www.google.com/apis/jquery";
if (get_domain($address) == "google.com") {
print "Yes.";
}
function get_domain($url)
{
$pieces = parse_url($url);
$domain = isset($pieces['host']) ? $pieces['host'] : '';
if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
return $regs['domain'];
}
return false;
}
В дополнение к другим ответам вы можете использовать регулярное выражение, подобное этому, которое ищет google.com в доменном имени
$domain = "http://www.google.com/docs";
if (preg_match('{^http://[\w\.]*google.com/}i', $domain))
{
}
Вы пробовали parse_url()
?
Обратите внимание, что вы также можете захотеть explode()
результирующий домен на '.'
, в зависимости от того, что вы имеете в виду под "доменом".
Вы можете использовать функцию parse_url, чтобы разделить URL на отдельные части (протокол/хост/путь/строка запроса /etc ). Если вы также хотите, чтобы www.google.com являлся синонимом для google.com, вам нужно добавить дополнительную проверку подстроки (с помощью substr), которая гарантирует, что последняя часть узла соответствует домену, который вы ищет.