包含路径解析如何在require_once中工作?
2022-08-30 21:16:49
我正在用PHP编写一个Web应用程序,当我遇到一个奇怪的情况时。为了说明我的问题,请考虑以下结构的 Web 应用:
/
index.php
f1/
f1.php
f2/
f2.php
这些文件的内容:
索引.php:
<?php require_once("f1/f1.php"); ?>
f1.php:
<?php require_once("../f2/f2.php"); ?>
f2.php:空白
现在当我尝试打开索引时.php在我的浏览器中,我得到这个错误:
Warning: require_once(../f2/f2.php) [function.require-once]:
failed to open stream: No such file or directory in /var/www/reqtest/f1/f1.php on line 2
Fatal error: require_once() [function.require]:
Failed opening required '../f2/f2.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/reqtest/f1/f1.php on line 2
我错过了什么明显的东西吗?包含路径在PHP中是如何工作的?
在我问这个问题之前,我试图尝试并找出答案。我设置了另一个测试,如下所示:
/
index.php
f1/
f1.php
f2.php
索引.php:
<?php require_once("f1/f1.php"); ?>
f1.php:
<?php require_once("f2.php"); ?>
f2.php:空白
令我惊讶(和完全混乱),这很好!
那么,路径解析背后的秘密是什么呢?
PS我看到了这个问题,但它仍然没有回答我在这里陈述的第二种情况。