动态URL子文件夹

时间:2014-02-26 21:04:25

标签: php dynamic

我需要这个脚本来做一些非常简单的事情。

我从localhost工作,然后上传。我需要返回的目录是动态的。即使它有多个子文件夹,也可以抓取正确的URL。

它说的地方

  

$ baseurl = $ protocol。 $ host。 “/网站/ andrewhunter /”;

我需要的是,如果您正在下载或上传网站,脚本会知道正确的网址。现在,用于托管环境的是子目录。所以domain.com/websites/client_website并不能改变。

所以基本上我无法让它正常工作。我尝试了一些方法,这是封闭的方法,通过在所有需要的页面上回显基本URL。

它没有抓取它上面的文件夹或动态调整到domain.com/websites/我必须手动添加

     /* First we need to get the protocol the website is using */
    $protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"], 0, 5)) == 'https' ? 'https://' : 'http://';

    /* returns /myproject/index.php */
    $path = $_SERVER['PHP_SELF'];

    /*
     * returns an array with:
     * Array (
     *  [dirname] => /myproject/
     *  [basename] => index.php
     *  [extension] => php
     *  [filename] => index
     * )
     */
    $path_parts = pathinfo($path);
    $directory = $path_parts['dirname'];
    /*
     * If we are visiting a page off the base URL, the dirname would just be a "/",
     * If it is, we would want to remove this
     */
    $directory = ($directory == "/") ? "" : $directory;

    /* Returns localhost OR mysite.com */
    $host = $_SERVER['HTTP_HOST'];

    $baseurl = $protocol . $host . "/websites/andrewhunter/";

>

1 个答案:

答案 0 :(得分:0)

为什么那部分$path_parts?我对你的问题感到有些困惑,但我知道你基本上想要在浏览器的地址栏中写下什么?这适用于我的遥控器以及我当地的MAMP,可能是我文件夹中的第一级或第四级文件

 /* First we need to get the protocol the website is using */
$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"], 0, 5)) == 'https' ? 'https://' : 'http://';

/* returns /myproject/index.php */
$path = $_SERVER['PHP_SELF'];

/* Returns localhost OR mysite.com */
$host = $_SERVER['HTTP_HOST'];

$baseurl = $protocol . $host . $path;

echo $baseurl;