php getimagesize失效,php – getimagesize找不到文件时处理错误

就像你说的,如果在不存在的文件上使用,getimagesize会生成一个警告:

这段代码:

if ($data = getimagesize('not-existing.png')) {

echo "OK";

} else {

echo "NOT OK";

}

会给你一个

Warning: getimagesize(not-existing.png) [function.getimagesize]:

failed to open stream: No such file or directory

解决方案是使用@ operator来掩盖该错误:

if ($data = @getimagesize('not-existing.png')) {

echo "OK";

} else {

echo "NOT OK";

}

由于该文件不存在,$data仍将是false;但不会显示警告.

在使用getimagesize之前,另一个解决方案是check if the file exists;这样的事情可以做到:

if (file_exists('not-existing.png') &&

($data = getimagesize('not-existing.png'))

) {

echo "OK";

} else {

echo "NOT OK";

}

如果文件不存在,则不调用getimagesize – 这意味着没有警告

不过,这个解决方案不是您应该用于另一个服务器上的图像,而是通过HTTP访问(如果是这种情况),因为这意味着对远程服务器的两个请求.

对于本地图像,这可以是相当的,我想;只有当我看到的问题是在没有被屏蔽的读取错误时生成的通知.

最后:

>我会允许错误显示在您的开发服务器上,

>而不会在您的生产服务器上显示那些 – 请参阅display_errors,关于;-)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值