ファビコンは、favicon.icoの存在、またはインデックスページのメタタグ内の仕様の2つの方法のいずれかで定義されます。
まず、favicon.icoを取得するだけです。
$icon = file_get_contents('http://www.google.com/favicon.ico');
file_put_contents('/some/local/path/google-favicon.ico',$icon);
これが404を表示する場合(file_get_contentsがfalseを返すか、$ iconがfalse)、次のように実行できます。
$content = file_get_contents('http://www.quotes.uk.com/');
preg_match_all('/<link.*rel="icon".*href="([^"]+)"/i',$content,$out);
$icon = file_get_contents($out[1][0]);
file_put_contents('/some/local/path/quotesuk-favicon.png',$icon);
したがって、私の例は単純化されたアプローチです。これをさらに一歩進めます:
- 結果が正常に戻ってくることを確認します(ロジック)
- mimeタイプを利用すると、一部のファビコンはPNGです。cURLを使用してヘッダーをキャプチャするか
mime_content_type
、mime magicが推測できるようになっているfileinfo
場合(使用可能な場合はエラー)
- ここでファビコンを含めるその他の方法を参照してください:http : //www.quotes.uk.com/web-design/meta-tags.php(セクション「ファビコンメタタグ」)
- 属性の順序(変更される可能性があります)が考慮されていないため、正規表現を強化するか、別のメソッドを完全に使用することを検討してください(SimpleXML?)
- 私のように思いやりのないコードを書かないでください