PHP只获取目录路径

时间:2010-04-08 17:00:13

标签: php path directory

我有:

$page_file_temp = $_SERVER["PHP_SELF"];

将输出:/templates/somename/index.php

我只想从该路径中提取"/templates/somename/"

我该怎么办? 谢谢!

5 个答案:

答案 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);

http://www.php.net/manual/en/function.pathinfo.php