当前位置:  开发笔记 > 编程语言 > 正文

如何找到应用程序的基本URL?

如何解决《如何找到应用程序的基本URL?》经验,为你挑选了2个好方法。

我想找到我的应用程序的基本URL,所以我可以自动引用我的应用程序树中的其他文件...

因此,在我的应用程序的基础上给出一个文件config.php,如果子目录中的文件包含它,知道在url前加上什么.

application/config.php
application/admin/something.php
application/css/style.css

因此,http://www.example.com/application/admin/something.php如果访问它,我希望它能够知道css文件所在$approot/css/style.css.在这种情况下,$approot是" /application"但我想知道应用程序是否安装在别处.

我不确定是否可能,许多应用程序(我认为是phpMyAdmin,Squirrelmail)必须先设置一个配置变量.如果它只是知道它会更加用户友好.



1> Andrew Moore..:

我在自制框架中使用以下内容...将它放在应用程序根文件夹中的一个文件中,然后简单地包含它.

define('ABSPATH', str_replace('\\', '/', dirname(__FILE__)) . '/');

$tempPath1 = explode('/', str_replace('\\', '/', dirname($_SERVER['SCRIPT_FILENAME'])));
$tempPath2 = explode('/', substr(ABSPATH, 0, -1));
$tempPath3 = explode('/', str_replace('\\', '/', dirname($_SERVER['PHP_SELF'])));

for ($i = count($tempPath2); $i < count($tempPath1); $i++)
    array_pop ($tempPath3);

$urladdr = $_SERVER['HTTP_HOST'] . implode('/', $tempPath3);

if ($urladdr{strlen($urladdr) - 1}== '/')
    define('URLADDR', 'http://' . $urladdr);
else
    define('URLADDR', 'http://' . $urladdr . '/');

unset($tempPath1, $tempPath2, $tempPath3, $urladdr);

上面的代码定义了两个常量.ABSPATH包含应用程序根目录(本地文件系统)的绝对路径,而URLADDR包含应用程序的完全限定URL.它在mod_rewrite情况下工作.



2> 小智..:

您可以使用以下代码找到基本URL:

define('SITE_BASE_PATH','http://'.preg_replace('/[^a-zA-Z0-9]/i','',$_SERVER['HTTP_HOST']).'/'.str_replace('\\','/',substr(dirname(__FILE__),strlen($_SERVER['DOCUMENT_ROOT']))).'/');

简短而且最好.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有