当我在Windows下创建一个符号链接(尚未在Linux下测试),想要再次删除/取消链接它时(我使用unlink()函数尝试过),它总是会同时删除符号链接和原始文件。但是我只想删除符号链接。难道没有专门的函数可以做到吗?
请查看这个答案:https://dev59.com/82jWa4cB1Zd3GeqPnRu9#12288764
unlink() 是正确的方法。
以下是我一个项目中的代码片段,仅在它是符号链接时才进行删除:
if(file_exists($linkfile)) {
if(is_link($linkfile)) {
unlink($linkfile);
} else {
exit("$linkfile exists but not symbolic link\n");
}
}
readlink()函数返回一个链接的目标,你可以在该目标上运行unlink()函数。
if(is_link($linkfile)) {
$target = readlink($linkfile)
unlink($target)
}
结果是该文件消失得无影无踪。
<?php
unlink ('my_link');
?>
请确保您使用的是软链接,而不是硬链接
查看此处的Mklink用法
在Linux上,为了安全起见,我建议使用以下命令:
shell_exec('rm ' . $file);
请阅读:
http://php.net/manual/en/function.symlink.php
试试这个:
symlink($target, $link);
unlink($link);
unlink($target);