以下示例不适用于php -
$data = file_get_contents('~/Documents/someFile.txt');
//没有这样的文件或目录
$data = file_get_contents('$HOME/Documents/someFile.txt');
//没有这样的文件或目录
这不起作用的原因是什么?
答案 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');
有两个问题:
您永远不会设置变量$HOME
。 HOME
是一个环境变量,但它们不会像在shell中一样自动变为PHP变量。
变量不会在单引号内扩展,请参阅What is the difference between single-quoted and double-quoted strings in PHP?(并非巧合,这与shell相同)。
你可以这样做:
$HOME = getenv('HOME');
$data = file_get_contents("$HOME/Documents/someFile.txt");