我的文件结构是这样的:
config.php
script
|--myscript.php
我的脚本.php
<?php
require '../config.php';
?>
执行时php /path/to/myscript.php
我得到Warning: require(../config.php): failed to open stream: No such file or directory.
什么原因?
我的文件结构是这样的:
config.php
script
|--myscript.php
我的脚本.php
<?php
require '../config.php';
?>
执行时php /path/to/myscript.php
我得到Warning: require(../config.php): failed to open stream: No such file or directory.
什么原因?
那是因为您当前的工作目录是您调用命令的目录,而不是您的脚本所在的目录。
采用
require __DIR__ . '/../config.php';
反而。__DIR__
是一个常量,指向当前文件所在的目录。
我这样做的一种方法是这样的:
php -d include_path=/path/to/config.php script.php
-d 用于在运行时设置 INI 指令,因此您没有任何更改的代码/配置/目录。
如果您不想(或不能)更改require
代码中的行,只需cd
在运行脚本之前更改脚本期望在其中执行的目录:
cd /path/to
php /path/to/myscript.php
您需要使用绝对路径或更改工作目录:
chdir(dirname(__FILE__));
很可能您的工作目录错误,因此您的相对路径未指向您期望的位置。要查看 PHP 如何看待它,请添加:
echo getcwd();
作为脚本的第一行。