根据我的个人经验,您无法删除正在使用的内容,我认为如果目标文件正在使用,unlink()将无效,您如何处理?
$_SESSION
答案 0 :(得分:1)
unlink
返回一个布尔值,您可以使用它来检测删除是否成功:
<?php
$file = fopen('notes.txt','w');
fwrite($file,'abc123');
$resul = unlink("notes.txt"); // ◄■■■ ATTEMPT TO DELETE OPEN FILE.
if ( $resul )
echo "File deleted";
else echo "File NOT deleted (file in use or protected)";
fclose($file);
?>
您可能会在屏幕上看到警告消息,因此请关闭警告并让代码(if($resul)
)处理问题。
修改:
可以使用函数is_writable
检测文件是否正在使用或是否受到保护,下一代码显示如何:
<?php
$file = fopen("notes.txt","w"); // ◄■■■ OPEN FILE.
fwrite($file,"abc123");
$resul = unlink("notes.txt"); // ◄■■■ ATTEMPT TO DELETE FILE.
if ( $resul ) // ◄■■■ IF FILE WAS DELETED...
echo "File deleted";
elseif ( is_writable( "notes.txt" ) ) // ◄■■■ IF FILE IS WRITABLE...
echo "File NOT deleted (file in use)";
else echo "File NOT deleted (file protected)";
fclose($file);
?>
要测试以前的代码,请打开文件的属性并将其设置为只读和隐藏,然后运行代码。