2016-10-21 2 views
0

код:Получение базовый путь в URL

$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

проверить это: https://eval.in/664072 – Dave

+2

@ElefantPhace Я OP. И я сделал google/search, просто не понравились решения. Я все еще рад, что спросил, так что я нашел 'dirname()'. И я никогда не беспокоюсь о репутации. – 3zzy

ответ

2

Easy

$basePath = dirname($url) . '/'; 

Demo ~ https://3v4l.org/XGNDd

+0

Вау! Не думал об этом, спасибо! – 3zzy

+0

@ 3zzy, пожалуйста. Оставайтесь сухими, eh;) – Phil

+0

один раствор лайнера :) – devpro

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 
?> 
0

Вы можете использовать эту функцию:

/** 
    * 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']); 
Смежные вопросы