Как совместить PHP_URL_HOST и PHP_URL_PATH?

357
16 июля 2017, 12:41

Пытаюсь получить ссылку (домен + последний каталог), пример: вася.ру/каталог/

так

$host = parse_url( preg_match('#^https?://#',$last_url) ? $last_url : 'http://'.$last_url, PHP_URL_HOST, PHP_URL_PATH ) or die('Не верное имя домена'); и так echo parse_url($url, PHP_URL_HOST, PHP_URL_PATH); не получается.

Как заменить на функцию basename() не знаю, помогите получить текущий каталог в этом коде $host = parse_url( preg_match('#^https?://#',$last_url) ? $last_url : 'http://'.$last_url, PHP_URL_HOST, PHP_URL_PATH ) or die('Не верное имя домена');

Спасибо!

Answer 1

А почему Вы так не делаете?

$last_url = 'https://вася.ру/каталог1/каталог2/каталог3/file.html?id=5';
$parts_ur = parse_url($last_url);
//$parts_ur['scheme'] => https
//$parts_ur['host'] => вася.ру
//$parts_ur['path'] => /каталог1/каталог2/каталог3/file.html
//basename($parts_ur['path']) => file.html
//т.е. нужно если со схемой https://вася.ру/каталог1/каталог2/каталог3/file.html
$output = $parts_ur['scheme'] . '://' . $parts_ur['host'] . $parts_ur['path'];
 //т.е. без схемы вася.ру/каталог1/каталог2/каталог3/file.html
$output = $parts_ur['host'] . $parts_ur['path'];
//последний каталог 
$catalog=explode('/', $parts_ur['path']);
$last_catalog=$catalog[count($catalog)-2]; //$last_catalog =>каталог3
//каталоги без файла
    $without_file = implode('/',explode('/', $parts_ur['path'], -1)); //$without_file => каталог1/каталог2/каталог3
 //если домен и каталоги: https://вася.ру/каталог1/каталог2/каталог3
     $output = $parts_ur['scheme'] . '://' . $parts_ur['host'] . $without_file;
//если домен и последний каталог: https://вася.ру/каталог3
     $output = $parts_ur['scheme'] . '://' . $parts_ur['host'] . '/'.$last_catalog;
Answer 2

Вероятно так

$last_url = 'https://вася.ру/каталог/';
$host = parse_url($last_url, PHP_URL_HOST); // вася.ру
$path = basename($last_url);                // каталог
READ ALSO
Пустой массив `POST` в `php` при запросе `axios.post`

Пустой массив `POST` в `php` при запросе `axios.post`

Возникла проблема при POST запросе с помощью библиотеки axios

423
Как хранить аккаунты соцсетей в Laravel?

Как хранить аккаунты соцсетей в Laravel?

На моем сайте пользователи могут войти через соцсети (Facebook, Google, Twitter и тд

266
Переход с php на js, идеологическая сторона

Переход с php на js, идеологическая сторона

Всем приветДа, понимаю, что в названии примерно то же, что и сравнивать корову с баней, но я хочу понять именно идеологическую сторону

224
Узнать где пользователь сайта был ранее

Узнать где пользователь сайта был ранее

ЗдравствуйтеПри переходе на одну из страниц моего сайта (например site

247