我正在一个客户端网站(PHP)上工作,并有一个非常奇怪的行为。使用include,include_once,require或require_once似乎也吸引了其他根本不应该存在的内容。有没有人听说过这样的事情?PHP包含奇怪的行为
即使包含文件为空或仅包含一些文本,行为仍然存在。这可能是某种设置/全局行为吗?
谢谢
例如:
<?php require_once('dir/subdir/file.php'); ?>
我正在一个客户端网站(PHP)上工作,并有一个非常奇怪的行为。使用include,include_once,require或require_once似乎也吸引了其他根本不应该存在的内容。有没有人听说过这样的事情?PHP包含奇怪的行为
即使包含文件为空或仅包含一些文本,行为仍然存在。这可能是某种设置/全局行为吗?
谢谢
例如:
<?php require_once('dir/subdir/file.php'); ?>
你应该总是使用绝对路径。这是引用文件的唯一可靠方法。
<?php require_once(__DIR__ . '/dir/subdir/file.php'); ?>
或者对PHP 5.2:
<?php require_once(dirname(__FILE__) . '/dir/subdir/file.php'); ?>
的包括通过复制所需的文件到被调用的函数的占位符的内容/ require函数的工作。如果包含的文件为空,则复制内容为空。如果您的内容中包含了您不认识的内容,那么可能意味着您的包含路径可能指向了其他位置,而不是您想要的位置,或者包含的文件在其中包含了一些额外的文件。
作为全局设置,在php.ini中指定了全局php include path,其中人们通常会添加库或全局脚本。默认情况下,它不应该包含影响脚本的内容。
如果在include_path没有找到文件,包括最终将在调用脚本本身的目录和失败之前,在当前工作目录检查。
您能否包含一些示例代码? –
没有人可以通过猜测你正在尝试做什么来帮助你。显示一些代码并详细说明“其他内容”是什么。 – Repox
我有一些有趣的经验,包括和输出缓冲 - 你使用缓冲区? – HorusKol