Re: [請益] 抓取"yahoo搜尋"原始碼,中文會無法顯示?

看板PHP作者 (火鍋)時間17年前 (2008/07/17 17:23), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《iamwni (魚只能甩尾...)》之銘言: : 此程式檔有用utf-8格式儲存,程式如下: : <?php : header('Content-Type: text/html; charset=utf-8'); : $search_url = "http://tw.search.yahoo.com"; : $page = implode('', file($search_url)); : echo $page; : ?> : 有抓到原始碼,但中文卻無法顯示 : 但換抓取google的原始碼時,中文就可以正常顯示 : 試了好多種抓取的程式,結果都是一樣,不知是那裡出錯了 : 麻煩請高手幫幫忙吧!謝謝... 像是這種問題通常是header送出給對方時候沒有設定, 我是建議使用curl函數來抓取遠端 網頁 header('Content-Type: text/html; charset=utf-8'); $search_url = "http://tw.search.yahoo.com"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$search_url); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9) Gecko/2008052906 Firefox/3.0'); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch ,CURLOPT_HTTPHEADER, array("Accept-Language: zh-tw","Accept-Charset: utf-8")); $content = curl_exec ($ch); curl_close ($ch); echo $content; 重點是CURLOPT_HTTPHEADER的設定要特別告知yahoo說..."對不起我只接受中文utf8喔" USERAGENT可設定可不設定, 如果碰上一些還是看不到的網站, 可以加上USERAGENT試試看 -- 海綿寶寶, 不要講話!派大星! 我覺得有人在盯著我們看... 你會害我們被發現! JUNU -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.32.15

07/17 21:12, , 1F
中文可以正常顯示了耶!非常感謝a大,謝謝!
07/17 21:12, 1F
文章代碼(AID): #18Vm-jzA (PHP)
文章代碼(AID): #18Vm-jzA (PHP)