PHP link()命令是否真的需要Windows上的提升权限?

时间:2014-11-17 22:52:34

标签: php windows symlink hardlink

manual

  

注意:仅适用于Windows:此功能需要PHP才能运行   提升模式或禁用UAC。

但是在我的Windows 8机器上,我可以在没有提升权限的情况下运行mklink /H,所以我不明白为什么PHP需要这个。另一方面,如果我在没有H的情况下运行mklink来创建符号链接,我需要提升权限,尽管在{{3}的PHP文档中没有注释}。

我没有Windows PHP安装,所以无法测试它(我想知道这适用于Windows 7,vista或其他什么)。文档是错的吗?

2 个答案:

答案 0 :(得分:1)

我在Windows 8.1机器上测试过它,看起来运行正常(通过Apache / CGI运行)

<pre><?php
var_dump(file_exists('f1'));
var_dump(file_exists('f2'));

var_dump(touch('f1'));
var_dump(link('f1','f2'));

var_dump(file_exists('f1'));
var_dump(file_exists('f2'));

var_dump(file_put_contents('f1', 'test'));
var_dump(file_get_contents('f2'));

输出:

boolean false
boolean false
boolean true
boolean true
boolean true
boolean true
int 4
string 'test' (length=4)

答案 1 :(得分:1)

您无需以管理员身份运行即可创建硬链接。但是,与UNIX不同, do 需要对链接目标的写访问权。

我猜测该文档的作者试图创建一个只有管理员具有写访问权限的文件的硬链接,因此错误地认为管理员访问是创建硬链接所必需的。