我如何编写代码,为其他php文件创建url系统,避免了导致文件移动的问题。
答案 0 :(得分:2)
首先,请注意这个架构存在严重缺陷,您应该更好地解释您的需求,以便我们帮助您找到解决此问题的另一种方法。此外,没有其他任何相关或绝对的网址,你问的不是一个神奇的第三种方式,而只是“如何弄清楚我的绝对路径是什么,无论我有多深”。
如果您决定继续使用此功能,则可以在虚拟主机中使用环境变量
<VirtualHost *:80>
#...
SetEnv URL_ROOT "/foo/bar/42"
</VirtualHost>
然后您可以从php中读取它,而无需读取任何相对路径/知道文件的位置:
<?php
$url_root = getenv('URL_ROOT');
define('URL_ROOT', $url_root == false ? '/' : $url_root);
另一种解决方案是在php.ini中使用auto_prepend_file
答案 1 :(得分:1)
URL是绝对的或相对的,除了你的情况,你可以使用路由系统,查看Symfony路由组件,它可以为你提供想法http://symfony.com/doc/current/components/routing/introduction.html