我有一个目录为PDF\9783790820874-c1.pdf
的文件
我想用unlink()
功能删除此文件。但是如果我将目录设置为变量并取消链接,它似乎无法工作
例如:
$FileToDelete = "PDF\9783790820874-c1.pdf";
unlink($FileToDelete);
代码是逻辑不是吗?但为什么当我执行它时,它会显示错误信息:
Warning: unlink(PDF\9783790820874-c1.pdf ): Invalid argument on line 36
我必须将文件目录保存到变量中以便与我的程序一起使用,有什么方法可以解决它吗?
答案 0 :(得分:6)
您的反斜杠被解释为转义序列。
http://php.net/manual/en/language.types.string.php#language.types.string.syntax.double
将其更改为正斜杠(适用于Windows上的路径):
$FileToDelete = "PDF/9783790820874-c1.pdf";
或使用单引号:
$FileToDelete = 'PDF\9783790820874-c1.pdf';
或者只是逃避反斜杠:
$FileToDelete = "PDF\\9783790820874-c1.pdf";
答案 1 :(得分:2)
我认为你基于反斜杠路径分隔符在Windows上。
我认为问题是由于逃避反斜杠导致问题,请尝试:
$FileToDelete = "PDF\\9783790820874-c1.pdf";
unlink($FileToDelete);
希望能为你解决这个问题。
请记住''和""与在字符串中转义相关的行为不同。因此,虽然' a \ b.pdf'可以工作" a \ b.pdf"可能意味着完全不同的东西(其中a和b是[某些字符串])。