2012-01-13 55 views

回答

6

使用is_readable()is_writable()在尝试复制()之前检查源和目标的状态。

+0

我看到is_readable抛出一个警告,这不就是一回事吗? – danidacar 2012-01-13 18:25:44

+0

is_readable会引发一个警告,该警告可以通过适当的php.ini配置隐藏和/或记录。如果不使用抑制运算符,则尝试复制()所引发的错误类型不能如此优雅地隐藏。此外,is_readable()和is_writable()提供copy()不能的信息。 – 2012-01-16 19:46:19

1

真的,你不应该向浏览器显示错误。在php.ini中关闭display_errors

然后,您可以测试它是否成功通过其布尔返回值,而无需担心屏幕上的警告。

if (!copy('srcfile', 'destfile')) { 
    // something failed. 
} 
+5

在开发时保持警告是很好的。打开他们的生产用途。 – 2012-01-13 16:01:27

+0

@火箭我觉得这是隐含的。以上澄清。 – 2012-01-13 16:02:18

+0

也是这么想的,但我觉得我会把它扔出去。 – 2012-01-13 16:03:02

1

如果在函数前使用'@',则不会返回警告或通知,但会保留结果(boolean,string ...)。

试试这个:

if ([email protected]('srcfile', 'destfile')) { 
    // something failed. 
}