我有一个文件:system.php
<?php
function test()1
?>
我将它包含在主脚本main.php
<?php
require("system.php");
?>
我用php shell php\php.exe htdocs\main.php
运行它,它没有错误!!
当我将包含的文件重命名为system2.php
并将main.php
代码更改为:
<?php
require("system2.php");
?>
,我再次运行php\php.exe htdocs\main.php
,当然会出错。
我已经尝试了一切。重命名文件,将所有内容复制到另一个文件。似乎唯一的问题是名称"system.php"
!。此外,当我使用浏览器请求system.php
,system2.php
或main.php
时,我总是会收到错误消息。这些脚本很简单。
为什么吗
答案 0 :(得分:2)
您正在使用相对路径加载它,而不是您运行脚本的目录中的其他目录。因此,如果您的命令行是:
c:\a\b\c> php/php.exe scripts/foo.php
只是
<?php require('subdir/script.php');
然后PHP将尝试使用
包含该文件c:\a\b\c\subdir\script.php
作为文件位置。
所以,你有
c:\a\b\c\> php.exe htdoc\main.php
并且正在执行require(system.php)
,这将导致PHP查找
c:\a\b\c\system.php
您可能需要require('htdoc/system.php')
来指向正确的子目录或绝对完整路径。