我试图从父目录中包含一个 php 文件,但出现错误:
admin@webby:~$ /usr/bin/php /var/phpscripts/email_parser/tests/_email-test.php PHP 致命错误:require_once(): 无法打开所需的 '../PlancakeEmailParser.php' (include_path='. :/usr/share/php:/usr/share/pear') 在 /var/phpscripts/email_parser/tests/_email-test.php 第 6 行
致命错误:require_once(): 在 /var/phpscripts/email_parser/tests/_email 中打开所需的 '../PlancakeEmailParser.php' (include_path='.:/usr/share/php:/usr/share/pear') 失败-test.php 第 6 行
PHP文件
#!/usr/bin/php
<?php
error_reporting(E_ALL ^ E_NOTICE ^E_WARNING);
ini_set("display_errors" , 1);
require_once("../PlancakeEmailParser.php");
// etc
?>
Run Code Online (Sandbox Code Playgroud)
文件夹结构
admin@webby:/var/phpscripts/email_parser$ find .
.
./composer.json
./README.txt
./LICENSE.txt
./PlancakeEmailParser.php
./tests
./tests/_email-test.php
Run Code Online (Sandbox Code Playgroud)
为了进行测试,当我PlancakeEmailParser.php进入tests目录并从 require 中删除“../”时它工作正常
线
require_once("../PlancakeEmailParser.php");
Run Code Online (Sandbox Code Playgroud)
未使用完全限定的文件系统路径或 PHP-URI 方案。因此它的结果取决于 PHP 配置,通常是因为包含目录配置。
PHP CLI 可以使用与您的网络服务器不同的配置文件- 或者 -工作目录与您的网络服务器不同(可能后者在您的特定场景中扮演更多角色)。
你想要的也可以很容易地完全限定:
require_once(__DIR__ . "/../PlancakeEmailParser.php");
Run Code Online (Sandbox Code Playgroud)
这可能就是你要找的。