電子書籍の厳選無料作品が豊富!

プログラム初心者です

他のサイトのRSSを取得してMYSQLに保存する方法を教えてください

やってみたのですが、RSSを取得して配列にするとこまではできました

それを自動でMYSQLに登録する方法はありますか?

$rssArray[]=array($date, $title, $link);//左から日付け、タイトル、リンクになります

よろしくおねがいします

A 回答 (1件)

もう一度「基本コーディング」あたりのおさらいを。



PHPでデータベースに接続するときのまとめ
http://qiita.com/mpyw/items/b00b72c5c95aac573b71

"自動で" というのが引っかかっているようですが、単に定期的にそのスクリプトを実行させればいいだけです。Linuxであれば標準で「cron」という機能が使えます。Windowsであれば適当なフリーソフトを導入してください。一応シンプル性を重視したツールを以前にVisualBasic言語を使って自作したことがあるのでダウンロードリンク貼っておきますねww

SimpleCron ダウンロード
http://www1.axfc.net/u/3196654

なおRSS取得部分に関しても、以下の点には気を付けてください。

・正しくXMLとして読み込めたかどうかをチェックする
・並列処理でリクエストを送る

後者が特に重要です。逐次リクエストだと著しく実行速度が遅くなるので、ある程度束ねて並列で送ってしまったほうが合理的でしょう。

curl_multiでHTTP並列リクエストを行うサンプル
http://qiita.com/Hiraku/items/1c67b51040246efb4254

そのままだと若干使いにくいので、こういうラッパークラスを作っておいてもいいかもしれません。 MultiRequest::get() や MultiRequest::post() をコールして使います。

cURLマルチリクエスト用簡易ラッパー
http://bloggdgd.blog28.fc2.com/blog-entry-290.html

INSERT文に関しては、IGNOREオプションを使うとユニークキーに重複があったときにエラーを出さずに無視してくれるので、今回の用途に向いていると思います。あらかじめ「date」「title」「link」でユニークキー制約を設定しておいてください。


【実装例】
http://pastebin.com/AsjSq1Mu

結局全部書いてしまいましたw
    • good
    • 0
この回答へのお礼

回答ありがとうございます
保存できました。これでrssを後で読むことができそうです。ありがとうございます

お礼日時:2014/03/23 20:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!