проверка php, если домен равен значению, затем выполнить действие - PullRequest
2 голосов
/ 14 июля 2009

Мне нужно взять переменную, содержащую URL, и проверить, равен ли домен определенному домену, если это так, отобразить одну переменную, если нет, повторить другую.

$domain = "http://www.google.com/docs";
if ($domain == google.com)
{ echo "yes"; }
else
{ echo "no"; }

Я не уверен, как написать вторую строку, где он проверяет домен, чтобы увидеть, содержит ли $ domain URL-адрес в операторе if.

Ответы [ 5 ]

14 голосов
/ 14 июля 2009

Это делается с помощью parse_url:

$host = parse_url($domain, PHP_URL_HOST);
if($host == 'www.google.com') {
    // do something
}
7 голосов
/ 14 июля 2009

Чуть более продвинутая функция поиска домена.

$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;
}
2 голосов
/ 14 июля 2009

В дополнение к другим ответам вы можете использовать регулярное выражение, подобное этому, которое ищет google.com в доменном имени

$domain = "http://www.google.com/docs";
if (preg_match('{^http://[\w\.]*google.com/}i', $domain))
{

}
1 голос
/ 14 июля 2009

Вы можете использовать функцию parse_url , чтобы разделить URL-адрес на отдельные части (протокол / хост / путь / строка запроса / и т. Д.). Если вы также хотите, чтобы www.google.com был синонимом для google.com, вам нужно добавить дополнительную проверку подстроки (с substr), которая удостоверяется, что последняя часть хоста соответствует домену, который вы используете. ищу.

1 голос
/ 14 июля 2009

Вы пробовали <a href="http://uk3.php.net/manual/en/function.parse-url.php" rel="nofollow noreferrer">parse_url</a>()?

Обратите внимание, что вам также может потребоваться explode() получившийся домен на '.', в зависимости от того, что именно вы подразумеваете под «доменом».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...