私の答えは、URL自体に拡張子がないURLからファイルの拡張子を取得したいと想定しています。
pathinfo()
テキスト処理を使用して拡張子を取得し、URLには拡張子がないため、usingは機能しません。
アプローチは、URLにhttpリクエストを送信し、応答ヘッダーをフェッチできるようにする低レベルのhttp機能を使用することです。応答ヘッダーには、コンテンツのmimetypeを示す「Content-Type:」ヘッダーが定期的に含まれている必要があります。
'Content-Type'ヘッダーを取得したら、変換テーブルと変換mimetypeを使用してファイル拡張子を付けることができます。もちろん、このサポートされている拡張機能のリストは制限されており、複数の拡張機能に変換できるmimetypeがあります。このような場合、ファイルの内容自体についてさらに調査する必要があります。
実際のphpプログラムはこの答えには大きすぎるので、疑似コードだけを与えます。
<?php
function get_extension_from_mimetype($url) {
// static translation table. to be extended
static $translationTable = array (
'image/jpeg' => 'jpg',
'text/xml' => 'xml',
'text/html' => 'html'
);
$defaultExtension = 'dat';
// you'll have to write this method
$mimetype = get_mimetype_by_url($url);
if(isset($translationTable[$mimetype])) {
$extension = $translationTable[$mimetype];
} else {
$extension = $defaultExtension;
}
return $extension;
}