我有:
$page_file_temp = $_SERVER["PHP_SELF"];
将输出:/templates/somename/index.php
我只想从该路径中提取"/templates/somename/"
我该怎么办? 谢谢!
答案 0 :(得分:22)
$page_directory = dirname($page_file_temp);
请参阅dirname。
答案 1 :(得分:5)
也许这是你的解决方案:
$rootPath = $_SERVER['DOCUMENT_ROOT'];
$thisPath = dirname($_SERVER['PHP_SELF']);
$onlyPath = str_replace($rootPath, '', $thisPath);
例如:
$_SERVER['DOCUMENT_ROOT']
是服务器的根路径,如/home/abc/domains/abc.com/public_html
$_SERVER['PHP_SELF']
是关于该脚本的完整路径,如/home/abc/domains/abc.com/public_html/uploads/home/process.php
然后我们可以:
$rootPath
喜欢这个/home/abc/domains/abc.com/public_html
$thisPath
喜欢这个/home/abc/domains/abc.com/public_html/uploads/home
和$onlyPath
一样/uploads/home
答案 2 :(得分:1)
查看dirname()功能。
从文档中,dirname()
删除尾部斜杠。如果你想保留它,你可以将常量DIRECTORY_SEPARATOR附加到结果中。
$dir = dirname('mystring/and/path.txt').DIRECTORY_SEPARATOR;
答案 3 :(得分:1)
使用parse_url将考虑GET变量和“片段”(#之后的URL部分)以及其他特定于URL的部分。
$url = $_SERVER['PHP_SELF']; // OR $_SERVER['REQUEST_URI']
echo parse_url($url, PHP_URL_PATH);
答案 4 :(得分:0)
替代方案:
$directory = pathinfo($page_file_temp,PATHINFO_DIRNAME);