RSSをMYSQLに入れる最適なコードがわからない
テーブル接続→テーブル作成(必要か不明)→RSSをまとめる→RSSを取得→RSSをテーブルに入れる→RSSを表示をPHPで作成しているのですが、
RSSをテーブルに入れる最適なコードがわからず困っております。
insertを使用してRSSをテーブルに入れたいのですが、INSERT INTOはphpにいきなり書いてもエラーにならないのでしょうか?$を使用するほうの記載のほうが正しいのでしょうか?
<?php
require_once(dirname(dirname(dirname(dirname( __FILE__ )))) . '/wp-load.php' ); //ファイルの先頭で読み込む
try {
$dsn = 'mysql:dbname=ozvutmpq_wp1;host=localhost';
$user = 'ozvutmpq_wp1';
$password = 'Rn_&Zi$gWKae';
$dbh = new PDO($dsn,$user,$pass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//エラーが発生した時に、例外を投げる
echo "データベースへの接続が出来ました";
}catch (PDOException $e) {
echo $e->getMessage();// err時はメッセージを表示
exit;
}
//RSSをまとめる
$url1 = [
'http://',
'http://',
'http://',];//フィード登録1次元配列に
foreach ($url1 as $url) { //複数のRSSを読み込むには?A.RSSのURLを配列に入れ、その配列をsimplexmlの引数にします。
$count = 0;//初期のカウント
//RSSを取得
$rss = simplexml_load_file("$url"); // simplexml_load_file()でRSSをパース解析してオブジェクトを取得します。
$site_title = $rss->channel->title; // RSSタイトル取得 値の代入 自作関数
$post_thumbnail= $rss->channel->thumb; // RSSサムネイル画像取得 値の代入 自作関数
foreach ($rss->item as $item) {
// この内側で $item を参照する
if ($count >= 8) {
break;//8件を超えたとき取得を終了する
}
$count++;
$title = $item->title; // タイトル
$link = $item->link; // リンク
$thumb = $item->thumb->url; // アイキャッチサムネイル
$content = $item ->description;// 詳細、必要なのか不明
date_default_timezone_set("Asia/Tokyo");//日時、タイトルとサムネイル画像だけほしいので要らない気がする
$dc = $item ->children('http://purl.org/dc/elements/1.1/');//RSSの情報をPHPで取得するとき、[simplexml_load_file()]関数を使いますが、読み込むファイルの形式が[RSS 1.0]の場合、特殊な処理を施してあげないと正確に取得・表示することができません。
$day = date('Y/m/d H:i',strtotime($dc -> date));// RSS日付け取得 値の代入 自作関数 RSS1.0を取得したい場合「dc」の名前空間は「xmlns:dc="http://purl.org/dc/elements/1.1/"」
と定義されているので、これを引数として指定します。
$key = date('YmdGHis', strtotime($dc -> date));//DB等に入れやすい書式に変換
}
}
//RSSをテーブルに入れる
INSERT INTO rssfeed (title, link, thumb,content)//テーブル名
VALUES ($title, $link,$thumb,$content now()) ON DUPLICATE KEY UPDATE up_date = now();
//名前を独自につける
$item_insert_sql = "INSERT INTO $db_database.`rssfeed`(title, link, thumb, content) VALUES ('" . $title . "', '" . $link . "', '" . $thumb . "', '" . $content . "')";//mysql_queryとしてまとめてコードとして使うため?
補足
回答ありがとうございます。質問した後にカテゴリを間違えてたの気づきました。 出力するときの文字コードは google spreadsheet を開いた時のブラウザの文字コードのことでしょうか firefox でしたら表示タブの文字エンコーディングより Unicode UTF-8 になっています。 Chrome でしたらツール<エンコードより Unicode UTF-8 になっています。 IE も同様に Unicode UTF-8 になっていますが、やはり ??? になってしまいます。