【发布时间】:2023-03-02 21:09:01
【问题描述】:
我有:
$page_file_temp = $_SERVER["PHP_SELF"];
将输出:/templates/somename/index.php
我只想从该路径中提取"/templates/somename/"
我该怎么做? 谢谢!
【问题讨论】:
我有:
$page_file_temp = $_SERVER["PHP_SELF"];
将输出:/templates/somename/index.php
我只想从该路径中提取"/templates/somename/"
我该怎么做? 谢谢!
【问题讨论】:
也许这是你的解决方案:
$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
【讨论】:
使用 parse_url 将考虑 GET 变量和“片段”(# 之后的 URL 部分)以及其他特定于 URL 的部分。
$url = $_SERVER['PHP_SELF']; // OR $_SERVER['REQUEST_URI']
echo parse_url($url, PHP_URL_PATH);
【讨论】:
另一种选择:
$directory = pathinfo($page_file_temp,PATHINFO_DIRNAME);
【讨论】:
$page_directory = dirname($page_file_temp);
见dirname。
【讨论】:
看看dirname()函数。
从文档中,dirname() 删除了尾部斜杠。如果要保留它,可以将常量 DIRECTORY_SEPARATOR 附加到结果中。
$dir = dirname('mystring/and/path.txt').DIRECTORY_SEPARATOR;
【讨论】: