php png以jpg读取,PHP if语句认为png扩展名是jpg/jpeg(检查pathinfo())?

ReactingToAngularVues

1

php

png

mime

file-type

我正在使用PHP将图像处理成缩略图,我允许通过以下3种单独的扩展类型:.jpg,.jpeg和.png ...前2个,后者必须通过不同的功能处理,即分别是createimagefromjpg()和createimagefrompng().

我正在抓取图像的文件扩展名,然后使用if语句检查它是哪种文件类型,以便正确处理它:

$extension = pathinfo($filename, PATHINFO_EXTENSION);

// Read source image

if ($extension == ('jpg' || 'jpeg')) {

$source_image = imagecreatefromjpeg($filename);

return '1';

} else if ($extension == 'png') {

$source_image = imagecreatefrompng($filename);

return '2';

} else {

return 'error';

}

jpg和jpeg图像处理正确,因为此函数返回1 ...所以一切似乎都很好.但是,当我通过png文件时,它同样进入第一个分支并返回'1',即使png!= jpeg或jpg.奇怪的.此错误导致我的缩略图根本无法生成.

它变得更加令人困惑.如果我启用严格的比较替换==用===在IF statemtn,JPG和JPEG文件报错了完全说明,显然"JPG"!="JPG"(即使它),并同样与JPEG格式.PNG文件完全破坏了脚本.

编辑:问题似乎不是我的IF语句,而是imagecreatefrompng()功能.它适用于小图像(200x200),但不适用于较大的图像......任何人都可以解释这个吗?

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值