我在目录中有两个PHP文件。一个包括另一个,<?php include 'channels.phtml'; ?>
,并且工作正常。当我将包含的文件移动到父目录并调整调用<?php include '../channels.phtml'; ?>
时,会出现问题。在这种情况下,找不到该文件。
为什么会这样?
我使用的是Ubuntu而且我认为这不是一个权限问题,但无论如何这里都是详细信息:
父目录:drwxrwxr-x 6 kim kim 4096 Mar 26 08:42 org
儿童目录:drwxrwxr-x 2 kim kim 4096 Mar 26 08:47个人资料
包含文件:-rwxrwxrwx 1 kim kim 28 Mar 26 08:42 channels.phtml
我尝试了require
,结果相同。
编辑:
mesutozer提出的修复确实有效,但不应该要求它。从include命令的PHP手册条目:
如果定义了一个路径 - 无论是绝对路径(从Windows上的驱动器号或者\或Unix / Linux系统上的/开始)还是相对于当前目录(以。或..开头) - include_path将被忽略共。例如,如果文件名以../开头,则解析器将查找父目录以查找所请求的文件。
请注意,phpinfo显示当前目录(。)位于包含路径上,据我所知,我没有禁用相对路径。
仅供参考,我使用的是ZF2。
答案 0 :(得分:1)
您需要在包含路径中包含当前文件夹,或将其他文件的完整路径指定为:
<?php include dirname(__FILE__) . '/../channels.phtml'; ?>