#php
#php
Вопрос:
код:
$url = 'https://www.example.com/path/to/product/filename.html';
echo parse_url($url);
вывод:
[scheme] => https
[host] => www.example.com
[path] => /path/to/product/filename.html
Как мне получить текущий базовый путь, то есть:
https://www.example.com/path/to/product/
Комментарии:
1. проверьте это: eval.in/664072
2. @ElefantPhace Я OP. И я использовал Google / search, просто мне не понравились решения. Я все еще рад, что спросил и нашел
dirname()
. И я никогда не беспокоюсь о репутации, кстати.
Ответ №1:
Комментарии:
1. универсальное решение 🙂
Ответ №2:
Вы можете использовать pathinfo()
<?php
$url = 'https://www.example.com/path/to/product/filename.html';
echo "<pre>";
print_r(pathinfo($url));
?>
Результат:
Array
(
[dirname] => https://www.example.com/path/to/product
[basename] => filename.html
[extension] => html
[filename] => filename
)
Вы можете получить путь как:
<?php
$url = 'https://www.example.com/path/to/product/filename.html';
$info = pathinfo($url);
echo $info['dirname']; //https://www.example.com/path/to/product
?>
Ответ №3:
Вы можете использовать эту функцию:
/**
* Suppose, you are browsing in your localhost
* http://localhost/myproject/index.php?id=8
*/
function getBaseUrl()
{
// output: /myproject/index.php
$currentPath = $_SERVER['PHP_SELF'];
// output: Array ( [dirname] => /myproject [basename] => index.php [extension] => php [filename] => index )
$pathInfo = pathinfo($currentPath);
// output: localhost
$hostName = $_SERVER['HTTP_HOST'];
// output: http://
$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https://'?'https://':'http://';
// return: http://localhost/myproject/
return $protocol.$hostName.$pathInfo['dirname']."/";
}
или проще с этим:
echo "http://".dirname($_SERVER['SERVER_NAME']."".$_SERVER['PHP_SELF']);