在CLI PHP中引用主目录

时间:2017-10-31 19:18:27

标签: php command-line-interface

以下示例不适用于php -

$data = file_get_contents('~/Documents/someFile.txt');

//没有这样的文件或目录

$data = file_get_contents('$HOME/Documents/someFile.txt');

//没有这样的文件或目录

这不起作用的原因是什么?

3 个答案:

答案 0 :(得分:1)

~$HOME的扩展是由shell完成的,而不是由PHP完成的。根据您的配置,您可以使用:

$data = file_get_contents($_SERVER['HOME'] . '/Documents/someFile.txt');

答案 1 :(得分:1)

使用getenv('HOME')$_SERVER['HOME']。你不能在单引号中使用$ HOME,因为它的文字将被使用,并且php不知道〜。

答案 2 :(得分:0)

$data = file_get_contents('$HOME/Documents/someFile.txt');

有两个问题:

  1. 您永远不会设置变量$HOMEHOME是一个环境变量,但它们不会像在shell中一样自动变为PHP变量。

  2. 变量不会在单引号内扩展,请参阅What is the difference between single-quoted and double-quoted strings in PHP?(并非巧合,这与shell相同)。

  3. 你可以这样做:

    $HOME = getenv('HOME');
    $data = file_get_contents("$HOME/Documents/someFile.txt");