是否有一个PHP常量自动从__FILE__
中删除$_SERVER['DOCUMENT_ROOT']
?
所以如果文档根是:
/Applications/XAMPP/xamppfiles/htdocs
, __FILE__
为
/Applications/XAMPP/xamppfiles/htdocs/Project/application/controllers/index.php
它返回:
/Project/application/controllers/index.php
您可能需要_SERVER['PHP_SELF']
或_SERVER['SCRIPT_NAME']
。
-
PHP_SELF
:当前执行脚本的文件名,相对于文档根目录。 -
SCRIPT_NAME
:包含当前脚本的路径。这对于需要指向自己的页面很有用。__FILE__
常量包含当前(即包含)文件的完整路径和文件名。
关于两者的区别:
然而,我刚刚注意到一个帖子在php。一般新闻组,有人问他们之间有什么区别。语义上,没有;它们应该包含相同的信息。然而,从历史上和技术上讲,确实存在。SCRIPT_NAME在CGI 1.1规范中定义,因此是一个标准。然而,并不是所有的web服务器都实现了它,因此它不一定是可移植的。另一方面,PHP_SELF是由PHP直接实现的,只要你用PHP编程,它就会一直存在。
通过:http://mwop.net/blog/45-PHP_SELF-versus-SCRIPT_NAME
也许你可以使用
$_SERVER['SCRIPT_NAME'];
我不知道我理解的问题是否正确,你也可以将根目录和文件
连接起来。$_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_NAME'];
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "'n";
echo $path_parts['basename'], "'n";
echo $path_parts['extension'], "'n";
echo $path_parts['filename'], "'n"; // since PHP 5.2.0
?>
没有这样的预定义变量。
但是您可以很容易地从这两个中获得它,使用基本的字符串操作函数,如strlen()
和substr()