ProfiPHPProfiPHP
Категория: Полезное в PHP

Очистка URL

Опишем функцию, которая очищает URL от всего лишнего, оставляя только имя домена и зону.
function clean_url( $url )
{
if ( $url == '' ) return false;
$url = str_replace( 'http://', '', mb_strtolower( $url ) );
$url = str_replace( 'https://', '', $url );
if ( mb_substr( $url, 0, 4 ) == 'www.' ) $url = mb_substr( $url, 4 );
$url = explode( '/', $url );
$url = reset( $url );
$url = explode( ':', $url );
$url = reset( $url );
return $url;
}
$url = 'http://mysite.org/page.html';
echo clean_url( $url );
Результат выполнения:
mysite.org
Разберем данную функцию.

Аргументом функции "$url" должен быть URL адрес. Значение данного аргумента можно взять с "$_SERVER['HTTP_HOST']". Если аргумент не задан, функция вернет "FALSE".

Далее, с помощью функции Str_replace извлекаем из URL название протокола (http:// и https://) и с помощью функции Mb_strtolower превращаем строку в нижний регистр.

Далее функция Mb_substr проверяет первые 4 символа, и если они представляют собой комбинацию "www.", тогда вырезаем их, начиная строчку с 5 символа.

Функция Explode разбивает строку на подстроки, и разделителем служит символ "/".

Следующим шагом является установка внутреннего указателя массива на его первый элемент функцией Reset.

И последним действием мы повторим 2 последних пункта, только теперь разделителем служить символ ":". Этим мы уберем с URL адрес порта, если он присутствует.

Результатом функции мы получим чистый адрес сайта, без портов, без протокола и дополнительной части.

Добавить комментарий

Имя:
Текст комментария: