PHP CLI include()找不到该文件

nic*_*ick 20 php

我的文件结构如下:

config.php
script
|--myscript.php
Run Code Online (Sandbox Code Playgroud)

myscript.php

<?php
require '../config.php';
?>
Run Code Online (Sandbox Code Playgroud)

执行时,php /path/to/myscript.php我得到Warning: require(../config.php): failed to open stream: No such file or directory.

什么原因?

zer*_*kms 24

那是因为您当前的工作目录是您调用命令的目录,而不是脚本所在的目录.

使用

require __DIR__ . '/../config.php';
Run Code Online (Sandbox Code Playgroud)

代替.__DIR__是一个指向当前文件所在目录的const.


see*_*ish 6

我这样做的一种方式是这样的:

php -d include_path=/path/to/config.php script.php
Run Code Online (Sandbox Code Playgroud)

-d用于在运行时设置INI指令,因此您没有任何更改的代码/配置/目录.