1

GoogleとcURLの組み合わせを使用して、ユーザーがプロファイルに入力したサイトのファビコンを取得して保存しています。私は次のコードを使用しています:

$url = 'www.madeupwebsitewithnoFavicon.com';
$fp = fopen ('img/favicons/'.$saveFileName.'.png', 'w+');
$ch = curl_init('http://www.google.com/s2/favicons?domain='.$url);
curl_setopt($ch, CURLOPT_TIMEOUT, 6);
/* Save the returned data to a file */
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
curl_close($ch);
fclose($fp);

サイトに実際にファビコンがあるかどうかを調べて、データベースに保存できるようにします。グーグルで検索しましたが、自分に合った解決策が見つかりません。

私はそれが私のために働くように見えたが、しなかった何かを見ました:

$pattern = '/<link[^>]+rel\s*=\s*["\']?\s*shortcut\s+icon\s*["\']?/i';
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
return preg_match($pattern, curl_exec($ch));

誰かアイデアはありますか?それはすべて私にとって少し新しいです

4

1 に答える 1

1

$domain."./favicon.ico" をカールして、http 応答が 200 であるかどうかをテストするのはどうですか?

于 2013-02-26T14:38:26.723 に答える