Функция анализа URL - PullRequest
       10

Функция анализа URL

3 голосов
/ 25 февраля 2010

Учитывая эту переменную:

$variable = foo.com/bar/foo

Какая функция обрезает переменную $ до foo.com?

Редактировать: я бы хотел, чтобы функция могла обрезать что-либо в URL-адресе, который может идти после имени домена

Заранее спасибо,

John

Ответы [ 4 ]

3 голосов
/ 25 февраля 2010

Работа для ОП:

$host = parse_url($url, PHP_URL_HOST);

Версия PHP, с которой мне приходится работать, не принимает два параметра (Zend Engine 1.3.0). Без разницы. Вот рабочий код для меня - у вас должен быть полный URL , включая схему (http://). Если вы можете смело предположить, что схема http: // (а не https: // или что-то в этом роде еще), вы можете просто добавить это, чтобы получить то, что вам нужно.

Работа для меня:

$url = 'http://foo.com/bar/foo';

$parts = parse_url($url);
$host = $parts['host'];

echo "The host is $host\n";
0 голосов
/ 25 февраля 2010

Вы можете использовать функцию parse_url в php и затем получить доступ к значению ключа "host", чтобы получить имя хоста

0 голосов
/ 25 февраля 2010

Попробуйте это:

function getDomain($url)
{
    if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED) === FALSE)
    {
        return false;
    }
    /*** get the url parts ***/
    $parts = parse_url($url);
    /*** return the host domain ***/
    return $parts['scheme'].'://'.$parts['host'];
}

$variable = 'foo.com/bar/foo';
echo getDomain($variable);
0 голосов
/ 25 февраля 2010

Я использую http://www.google.com/asdf в моем примере

Если вы тоже можете получить поддомен, вы можете разделить его на "//" и взять 1-й элемент, чтобы эффективно удалить протокол и получить www.google.com/asdf

Затем вы можете разделить на "/" и получить 0-й элемент.

Это выглядит ужасно. Просто мозговой штурм здесь =)

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