Como obter o tipo de arquivo real para imagens que não possuem uma extensão

Então, eu tenho um formulário de frente que permite que os usuários baixem imagens de um URL …

Tudo está certo quando o URL da imagem tem a extensão adequada como esta:

http://img.flipwordpress.com/uploads/image.jpg

mas quando a url da imagem não possui uma extensão como esta:

http://mydomain.com/image

Meu código não funciona.

É assim que eu obtenho a extensão:

$filetype = wp_check_filetype($imageurl, null); 

Agora, se o nome do arquivo da imagem recuperada tiver uma extensão, diga jpg, então a saída da chamada acima é

 Array ( [ext] => jpg [type] => image/jpeg ) 

No entanto, se a extensão não for parte do nome do arquivo, a chamada acima retornará a seguinte matriz

 Array ( [ext] => [type] => ) 

Como posso obter o tipo de arquivo real para imagens que não possuem uma extensão?

Solutions Collecting From Web of "Como obter o tipo de arquivo real para imagens que não possuem uma extensão"

Eu acho, você não pode determinar exatamente, mas você pode assumir um com dados de header.

 $headers = wp_get_http_headers( $url ); $mime_type = $headers['content-type']; $ext = ''; foreach ( wp_get_mime_types() as $exts => $mime ) { if ( $mime == $mime_type ) { $ext = $exts; break; } } 

Agora, na variável $ext , podem ser várias extensões que foram correspondidas, e não há como determinar qual a imagem que realmente possui. Mas, você poderia tentar o primeiro.

 if( $ext ){ $exts = explode('|', $ext); $ext = $exts[0]; }