2012-09-29 8 views
7

リモートファイルのMIMEタイプをチェックする最も速い方法は何ですか...私は最初のバイトからいくつかを読み込むことを考えています。私の頭の中には何もないものを作ってください...リモートファイルがmp3の場合はチェックしなければなりませんが、速いチェックが必要です。PHPはリモートファイルのMIMEタイプを取得する

+0

"リモートファイル"を定義しますか?どのようにアクセスされていますか? HTTP? SMB? NFS? FTP? IMAP? – Quentin

+0

ああ申し訳ありません! - HTTP –

+0

これはあなたを助けるかもしれません:[get_headers()](http://php.net/manual/en/function.get-headers.php) – rsz

答えて

5

HEADリクエストを作成してください。サーバーが主張しているContent-Typeを確認してください。

This stackoverflow questionについては、PHP経由でHTTPヘッダーにアクセスする方法について説明しています。

10

PHPのcurl_getinfo()

<?php 
    # the request 
    $ch = curl_init('http://www.google.com'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_exec($ch); 

    # get the content type 
    echo curl_getinfo($ch, CURLINFO_CONTENT_TYPE); 

    # output 
    // text/html; charset=ISO-8859-1 
?> 

出力ファイルは、実際のMP3データやその他のメディアフォーマットが含まれている場合

HTTP/1.1 301 Moved Permanently 
Location: http://www.google.com/ 
Content-Type: text/html; charset=UTF-8 
Date: Fri, 09 Apr 2010 20:35:12 GMT 
Expires: Sun, 09 May 2010 20:35:12 GMT 
Cache-Control: public, max-age=2592000 
Server: gws 
Content-Length: 219 

が実際に確認するには、私がgetID3()を使用しています。

+0

興味深いことに、私はコンテンツ<?php blabla?>でファイルjohn.mp3を作りました。スクリプトは "audio/mpeg"と言いますが、これは修正できますか? –

+0

残念ながらphp Mime-typeは実際のファイルの内容ではなく、ファイル拡張子だけを使って生成されます。ファイルに実際に有効なmp3データが含まれていることを実際に検証するには、サードパーティのアプリを使用する必要があります。 –

+0

あなたは[getID3()](http://www.getid3.org/demo/)を試すことができます –

関連する問題