我四处寻找答案,希望我没有错过它或不再重复它,但它就在这里。我有两个文件:
/var/www/index.php
/var/www/include/php/header.php
索引包括 header.php
文件。我希望头文件能够遍历两层,这样我就可以包含 /include/css/index.css
。这就是问题所在, header 也包含在
/var/www/sub/page.php
所以我不能简单地使用 ../../
因为 php 文件的位置发生了变化。我尝试使用 $_SERVER['PHP_SELF']
但这取决于包含头文件的 php 文件的位置。我还尝试了 dirname(__FILE__)
但这给了我 /var/www/
部分,这导致了包含的复杂性。
本质上,我希望 $_SERVER['PHP_SELF']
的值来自包含的 header.php
文件,而不是来自包含它的 php 脚本。我希望该站点是模块化的,这样它就可以发布到任何地方,而不必担心文件位置被弄乱。有更简单的方法吗?
最佳答案
认为您需要使用 __DIR__
常量才能包含相对于任何文件的文件。
但更好的是我认为为你的根文件系统路径定义一些常量,比如
define( 'FS_ROOT', 'root path here' );
并且当通过这个常量相对地包含文件时。它还允许您为每个使用的重要文件夹添加常量,如果要更改路径,您只需要更改一些常量值
关于PHP 路径位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15932456/