根據設定favicon的方式,就有2種讀取favicon的方法:
A、預設直接讀取網站根目錄的favicon.ico檔。 (建議學習:PHP影片教學)
B、如果不存在根目錄下的favicon.ico文件,就讀取頁面裡favicon的聲明。
相較之下,取得網站根目錄下的favicon.ico檔案是最簡單快速的,但如果網站根目錄下沒有該文件,就需要使用後台程式讀取網頁的原始程式碼,非常的麻煩。
使用PHP取得網站Favicon的方法
最近做一個Tab需要在網站名稱旁邊顯示網站的Favicon以提高顯示效果,如圖:
icetab開始做的時候想到的是利用Google的方式來獲取,使用“http://www.google.com/s2/favicons?domain=網址”的方式可以直接獲得網站的Favicon圖標並以16* 16大小圖片的形式顯示出來,這個方法簡單方便,但在有些網路環境下卻會出現圖片無法顯示的問題(需要翻牆),為了解決這個BUG我決定重新寫一個獲取Favicon的函數,使用自己的伺服器以避免翻牆。
實際效果請參考範例:
http://favicon.byi.pw/?url=blog.icewingcc.com
如果不想自己寫方法的話也可以使用我提供的接口,即“http://favicon.byi.pw/?url=網址”,網址可以帶http://前綴。
程式碼(呼叫Google的方式,這種方式可以減少程式碼量,而且速度也比較快):
<?php if(isset($_GET['url'])){ $icon = file_get_contents("http://www.google.com/s2/favicons?domain=" . $_GET['url']); if($icon){ header('Content-type:image/png'); echo $icon; }
沒錯,就這幾行程式碼搞定一切^_^
這樣只要我們使用的伺服器能夠存取Google就可以正常顯示出Favicon,不再受網路環境的影響。
以上是php取得網站ico的詳細內容。更多資訊請關注PHP中文網其他相關文章!