gpt4 book ai didi

php - getimagesize 找不到文件时处理错误

转载 作者:IT王子 更新时间:2023-10-28 23:59:35 25 4
gpt4 key购买 nike

当我尝试 getimagesize($img) 而图像不存在时,我得到一个错误。我不想先检查文件是否存在,只是处理错误。

我不确定 try catch 是如何工作的,但我想做类似的事情:

try: getimagesize($img) $works = true
catch: $works = flase

最佳答案

如您所说,如果在不存在的文件上使用,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 ;但不会显示警告。


另一种解决方案是 check if the file exists , 在使用 getimagesize 之前;像这样的事情会做:

if (file_exists('not-existing.png') && 
($data = getimagesize('not-existing.png'))
) {
echo "OK";
} else {
echo "NOT OK";
}

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

不过,对于位于另一台服务器上并通过 HTTP 访问(如果您在这种情况下)的图像,您不应该使用此解决方案,因为它意味着对远程服务器的两个请求。

我想,对于本地镜像,这就可以了;我看到的唯一问题是当读取错误未被屏蔽时生成的通知。


最后:

  • 我会允许在您的开发服务器上显示错误,
  • 并且不会在您的生产服务器上显示这些内容 -- 请参阅 display_errors , 关于那个 ;-)

关于php - getimagesize 找不到文件时处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1363876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com