Reputation: 137
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?
Upvotes: 5
Views: 15163
Reputation: 6054
On linux, to be safe I would just go with
shell_exec('rm ' . $file);
Upvotes: 0
Reputation: 291
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)
}
Upvotes: 9
Reputation: 7762
Read this:-
http://php.net/manual/en/function.symlink.php
try this:-
symlink($target, $link);
unlink($link);
unlink($target);
Upvotes: -2
Reputation: 1659
Just make sure you are using soft link, not hard links
check the usage of Mklink from here
Upvotes: 0
Reputation: 10888
The result is that the file disappears without a trace.
<?php
unlink ('my_link');
?>
Upvotes: 0