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

PHP Shell can't read certain name files

我有一个文件:system.php

<?php
function test()1
?>

我将它包含在主脚本中main.php

<?php
require("system.php");
?>

我运行它用phpshellphp\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 时,我总是会收到错误消息。脚本就是这么简单。

为什么?

您正在使用相对路径加载它,该路径位于不同于您 运行 脚本来源的目录中。所以如果你的命令行是:

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