Hola Mellileo! La explicación es sencilla. Igual que los archivos de texto plano son de tipo
text/plain, tenemos que los archivos de imagen GIF son de tipo
image/gif y los archivos JPEG son de tipo
image/jpeg.
Cuando tú buscas la subcadena
gif dentro del tipo de archivo (en este caso
image/gif) la función
strpos va a retornar un valor distinto de
0 porque como puedes ver la subcadena
gif no se encuentra en la posición
0 sinó en la posición
6. Por eso te funciona.
En cambio si buscaras con
strpos la posición de la subcadena
image/gif como hacías con
text/plain no funcionaría ya que retornaría el valor
0.
Espero que haya quedado un poco más claro

Salu2,
Avalon