手册说
注意:仅适用于Windows:此function要求PHP以提升模式运行或禁用UAC。
但是在我的Windows 8机器上,我可以在没有提升权限的情况下运行mklink /H
,所以我不明白为什么PHP需要这个。 另一方面,如果我在没有H的情况下运行mklink
来创build符号链接,那么我确实需要提升特权,尽pipe这在PHP文档中对于symlink()没有评论。
我没有一个Windows的PHP安装,所以不能testing它(我不知道这是如何适用于Windows 7,Vista,或其他)。 文件是错的吗?
您无需以管理员身份运行即可创建硬链接。 但是,与UNIX不同,您确实需要对链接的目标进行写入访问。
我猜测这个文档的作者试图创建一个到只有管理员可以写访问权限的文件的硬链接,所以错误地得出结论说为了创建硬链接需要管理员访问。
我在我的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)