我认为这很简单,但我似乎无法找到$_SERVER具有我正在寻找的数组的变量.
让我们说我的网址是http://example.com/subdirectory/index.php 我想得到除文件名之外的所有文件 - http://example.com/subdirectory/.
我知道我可以通过一些字符串操作很容易地做到这一点,但我想知道是否有一个我不知道的_server数组变量.我已经尝试了所有这些,看看他们给了什么,我可以得到任何东西,但我正在寻找什么.
Lès*_*sté 41
没有一个,因为它不是一个有用的属性来跟踪.如果当前脚本不是index.*那么,它将不会返回当前脚本的正确URL.
但是,这可能会让你得到你想要的:
echo '//'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
Run Code Online (Sandbox Code Playgroud)
编辑:
另外,除了安装用于Firefox的php.net在线手动搜索工具并使用搜索关键字设置它(这将允许您$_SERVER通过php $_server在URL栏中键入类似" " 的内容来提取全局文档),也应该知道var_dump()并print_r()允许您输出任何变量的全部内容,包括数组和对象.这对于调试非常有用.
小智 16
在您的情况下,字符串操作是最佳解决方案.
例如:
substr($_SERVER['REQUEST_URI'], 0, strrpos($_SERVER['REQUEST_URI'], '/') + 1);
Run Code Online (Sandbox Code Playgroud)
没有为您想要的定义变量.
您可以使用以下代码获取完整的基本网址:
// Base folder url
$myBase = ( (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);
Run Code Online (Sandbox Code Playgroud)
但希望大多数时候你不会要求使用完整的东西:
// Base folder server root path
$myBase = dirname($_SERVER['PHP_SELF']);
Run Code Online (Sandbox Code Playgroud)
如果你正在使用某种路由系统(mod_rewrite),请小心.
| 归档时间: |
|
| 查看次数: |
40103 次 |
| 最近记录: |