我想检查一下,取消链接返回true或false。
目前我试过这个:
if(!unlink("$directory/$file"))
{
echo "works not";
}
else
{
echo "works";
}
我没有输出,我只收到这条消息:
unlink("path"...VTS_01_1.VOB): Permission denied
但它没有用,有什么想法吗?
答案 0 :(得分:2)
在尝试is_writable
:
unlink
功能
if( ! @is_writable( "$directory/$file" ) ) {
echo "works not";
}
else {
unlink( "$directory/$file" );
echo "works";
}
如果失败,
is_writable
函数将显示警告(如果根据配置显示错误),请使用@
来抑制错误,如上面的代码所示。
话虽如此,你的CODE没有错误,即使你的CODE和错误一起,你也应该得到works not
作为输出。如果你没有得到它,那很可能在你的CODE中意味着一个错误处理程序设置在某个地方&处理程序以exit
或die
结束执行。
例如,以下CODE只会生成错误,没有输出(如果"$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
,看看他们是否正在停止执行。输出缓冲也可能是原因。