我正在使用客户端站点(PHP)并且有一种非常奇怪的行为。使用include,include_once,require或require_once似乎也会引入其他根本不存在的内容。有没有人听说过这样的事情?
即使包含文件为空或只有一些文本,行为仍然存在。这可能是某种设置/全球行为吗?
谢谢
例如:
<?php require_once('dir/subdir/file.php'); ?>
答案 0 :(得分:0)
您应始终使用绝对路径。这是引用文件的唯一可靠方式。
<?php require_once(__DIR__ . '/dir/subdir/file.php'); ?>
或者在PHP 5.2上:
<?php require_once(dirname(__FILE__) . '/dir/subdir/file.php'); ?>
答案 1 :(得分:0)
include / require函数通过将所需文件的内容复制到调用函数的占位符来工作。如果包含的文件为空,则复制为空。如果你有包含的内容,你不认识它可能意味着你的包含路径可能指向别的地方,而不是你在想什么,或者包含的文件可能包括一些额外的文件。
作为全局设置,php.ini中指定了全局php include path,人们通常会添加库或全局脚本。默认情况下,它不应包含影响脚本的内容。
如果在include_path中找不到该文件,include将最终在失败前检入调用脚本自己的目录和当前工作目录。