DGM*_*DGM 10 php web-applications
我想找到我的应用程序的基本URL,所以我可以自动引用我的应用程序树中的其他文件...
因此,在我的应用程序的基础上给出一个文件config.php,如果子目录中的文件包含它,知道在url前加上什么.
application/config.php
application/admin/something.php
application/css/style.css
Run Code Online (Sandbox Code Playgroud)
因此,http://www.example.com/application/admin/something.php如果访问它,我希望它能够知道css文件所在$approot/css/style.css.在这种情况下,$approot是" /application"但我想知道应用程序是否安装在别处.
我不确定是否可能,许多应用程序(我认为是phpMyAdmin,Squirrelmail)必须先设置一个配置变量.如果它只是知道它会更加用户友好.
And*_*ore 15
我在自制框架中使用以下内容...将它放在应用程序根文件夹中的一个文件中,然后简单地包含它.
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);
Run Code Online (Sandbox Code Playgroud)
上面的代码定义了两个常量.ABSPATH包含应用程序根目录(本地文件系统)的绝对路径,而URLADDR包含应用程序的完全限定URL.它在mod_rewrite情况下工作.
小智 5
您可以使用以下代码找到基本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']))).'/');
Run Code Online (Sandbox Code Playgroud)
简短而且最好.
| 归档时间: |
|
| 查看次数: |
19744 次 |
| 最近记录: |