简体   繁体   中英

PHP unlink symlink

when I create under windows a symlink (didn't test it yet under linux) and want to delete/unlink it again (I tried it with the unlink() - function), it always delete the symlink + original file. But I just want to delete the symlink. Isn't there any function for it?

Check this answer: https://stackoverflow.com/a/12288764/3910083

unlink() is the correct approach

code snippet from a project of mine, to only delete if it was a symlink

if(file_exists($linkfile)) {
    if(is_link($linkfile)) {
        unlink($linkfile);
    } else {
        exit("$linkfile exists but not symbolic link\n");
    }
}

readlink(), returns the target of a link, you can run unlink on that

if(is_link($linkfile)) {
      $target = readlink($linkfile)
      unlink($target)
}
  1. Rename the symbolic link to something like "my_link" in order to reuse the same PHP file.
  2. Create the PHP file with the appropriate code. I used "unlink.php". Simple and easy to remember.
  3. Upload the PHP file to the directory containing the link.
  4. Type in the URL to the file.

The result is that the file disappears without a trace.

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

Just make sure you are using soft link, not hard links

check the usage of Mklink from here

On linux, to be safe I would just go with

shell_exec('rm ' . $file);

Read this:-

http://php.net/manual/en/function.symlink.php

try this:-

symlink($target, $link);
unlink($link);
unlink($target);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM