这应该很简单,但我不知道为什么这不起作用。
我发送一个URL到我的服务器,我想检查这是否是一个图像。然后我想检查它是JPEG还是PNG。
if(! $image = @getimagesize( $url ) ) {
return $this->buildResponse( false, 'No image exists at that location' );
}
所以如果它不是图像,我会返回一些JSON响应。这很有效。
然后我想查看它的扩展名。
if( $image['mime']!= 'image/jpeg' || $image['mime']!= 'image/png') {
return $this->buildResponse( false, 'File must be of type jpeg or png' );
}
所以基本上我正在检查哑剧是否等于其中任何一个,如果不是那么我不想要它。
好的,这应该有用,但我总是得到File must be of type jpeg or png
回复。
A var_dump($image)
:
array(7) {
[0] 1366
[1] 854
[2] 2
[3] "width="
["bits"] 8
["channels"] 3
["mime"] "image/jpeg"
}
和var_dump($image['mime'])
:
string(10) "image/jpeg"
我是愚蠢的,发疯的还是遗失了一些在这里显而易见的事情。
答案 0 :(得分:2)
if( $image['mime'] != 'image/jpeg' || $image['mime'] != 'image/png')
这总是如此
答案 1 :(得分:1)
我理解当你在一段时间内挣扎时,这会有点混乱,所以我将解释它背后的逻辑。你说的是你希望一个人满意的两个条件。然而if-block在其中任何一个不满足时触发错误。因为这两个条件是相互排斥的,所以情况总是如此。相反,您希望if检查它们两者是否不满足,从而用AND运算符替换当前的OR运算符。