PHP unlink symlink

5
当我在Windows下创建一个符号链接(尚未在Linux下测试),想要再次删除/取消链接它时(我使用unlink()函数尝试过),它总是会同时删除符号链接和原始文件。但是我只想删除符号链接。难道没有专门的函数可以做到吗?
5个回答

9

请查看这个答案: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)
}

0
  1. 重命名符号链接为"my_link",以便重复使用同一个PHP文件。
  2. 创建带有适当代码的PHP文件。我使用了"unlink.php"。简单易记。
  3. 将PHP文件上传到包含链接的目录中。
  4. 键入文件的URL。

结果是该文件消失得无影无踪。

<?php
unlink ('my_link');
?>

0

请确保您使用的是软链接,而不是硬链接

查看此处的Mklink用法


我使用symlink()函数创建了链接。 - user1323512
你使用的是哪个 Windows 系统?XP/VISTA/7 还是 Server 2000/3/8? - Hawili

0

在Linux上,为了安全起见,我建议使用以下命令:

shell_exec('rm ' . $file);

-2

我想要删除符号链接,为什么我还需要创建一个新链接呢? - user1323512

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接