看板 PHP 關於我們 聯絡資訊
推 poeta: 可是好像又不是語法的問題,因為還是直接報錯: 04/10 18:11 → poeta: HTTP 錯誤 500.0 - Internal Server Error 04/10 18:11 → poeta: 讀取的網站一多就會變成那樣 04/10 18:12 用「simplexml_load_file 500」搜尋,第一篇是 http://stackoverflow.com/questions/1436614 從這篇看起來,simplexml_load_file() 只能處理 200 的回應 對方如果噴了 500 回來就會噴 warning 從這個方向來考慮,想出的解法是「用某個不管 200 還是 500 都能動的東西來抓資料」 例如說...curl,也就是連結中 RageZ 的回答 ------------------------------------------------ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $xml = curl_exec($ch); $a = simplexml_load_string($xml); ------------------------------------------------ 是說要自己做 RSS reader 去爬別人的 RSS 應該還會踩到很多地雷,加油...XD 不過如果目的只是想讀 RSS 的話 我建議用 feedly,或者不想用網路服務可以用 Thunderbird。 -- 頂天立地:愛孩子就要支持蘿莉控 http://goo.gl/Bha7e -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.27.59.43 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1428860405.A.3E3.html
y2468101216: 推 04/13 10:18
※ 編輯: GALINE (61.218.242.230), 04/13/2015 10:49:23
poeta: 謝謝指導,我昨天把他放到阿帕契裡面試試看,結果報錯是: 04/13 22:35
poeta: Maximum execution time of 30 seconds exceeded 04/13 22:35
poeta: 後來查到解決方法是改php.ini裡的「max_execution_time」 04/13 22:36
poeta: 也沒有完全解決問題,資料錄裡面的確匯入了一些xml,可是 04/13 22:37
poeta: 程式沒有跑完,我再研究看看好了,謝謝。 04/13 22:37
從 web server 那邊執行的話會有時間限制 如果你是用 linux 或 mac,直接在指令行「php reader.php」就可以 還可以迴圈裡面「echo $url, "\n";」確認執行的進度 windows 我不確定,不過應該有類似的作法可以在指令列直接執行 ※ 編輯: GALINE (61.227.55.198), 04/14/2015 23:57:48