您可以使用is_writable
函數試圖unlink
前:
if(! @is_writable("$directory/$file")) {
echo "works not";
}
else {
unlink("$directory/$file");
echo "works";
}
is_writable
功能會顯示警告(如果根據配置中顯示錯誤),如果失敗了,所以用@
取消錯誤如圖所示在上面的代碼中。
話雖如此,你的代碼是沒有錯要麼,即使你用錯誤一起代碼,你應該已經有了works not
作爲輸出爲好。如果你沒有得到它,這很可能意味着在你的代碼中錯誤處理程序被設置在&處理程序正在結束執行exit
或die
。
例如,下面的代碼將只產生錯誤,沒有輸出(如果"$directory/$file"
不可寫):
function handle_error($errno, $errstr, $errfile, $errline) {
die($errstr);
}
set_error_handler('handle_error');
// Note: since error handler ends execution with die
// even suppressing warning with @unlink will not give you
// any output other than the error
if(! @unlink("$directory/$file")) {
echo "works not";
}
else {
echo "works";
}
所以檢查或者set_error_handler
或set_exception_handler
,看它們是否停止執行。輸出緩衝也可能是原因。
你在這裏得到什麼輸出? –
我沒有得到任何東西,我只是得到這個消息:'解除鏈接(「路徑」... VTS_01_1.VOB):權限被拒絕# –
我故意讓該文件夾/文件打開以捕獲錯誤並顯示適合此問題的消息,在這種情況下沒有權限錯誤,它只是向我顯示錯誤,因爲我打開了文件夾/文件。 –