PHP Shell无法读取某些名称文件

时间:2015-07-14 18:53:06

标签: php shell require

我有一个文件: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.phpsystem2.phpmain.php时,我总是会收到错误消息。这些脚本很简单。

为什么吗

1 个答案:

答案 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')来指向正确的子目录或绝对完整路径。