【設計】ブログを簡単に見るヤツ6
オレ専用RSSの仕様
基本的に、RSS2.0準拠!?みたいな。
なので、RSS1.0が登録されている場合は、2.0に変換する必要があります。
なんか、【ブログを簡単に見るヤツ】のキモな気がします。
1.0と2.0のRSSから必要なデータを抜き出します。
2.0の場合
rss
channel
title //ブログタイトル
link //ブログURL
description //ブログの見出し
item //各記事
title //記事タイトル
description //記事本文
link //記事URL
pubDate //更新日時
/item
/channel
/rss
1.0の場合
rdf:RDF
channel
title
link
description
/channel
item
link
title
description
/item
/rdf:RDF
これらをマージして、↓のようなXMLにします。
xml version="1.0" encoding="utf-8"
rss version="2.0"
channel
title
link
description
language
atom:link
item
title
description
link
pubDate
/item
/channel
/rss
基本的に、RSS2.0準拠!?みたいな。
なので、RSS1.0が登録されている場合は、2.0に変換する必要があります。
なんか、【ブログを簡単に見るヤツ】のキモな気がします。
1.0と2.0のRSSから必要なデータを抜き出します。
2.0の場合
rss
channel
title //ブログタイトル
link //ブログURL
description //ブログの見出し
item //各記事
title //記事タイトル
description //記事本文
link //記事URL
pubDate //更新日時
/item
/channel
/rss
1.0の場合
rdf:RDF
channel
title
link
description
/channel
item
link
title
description
/item
/rdf:RDF
これらをマージして、↓のようなXMLにします。
xml version="1.0" encoding="utf-8"
rss version="2.0"
channel
title
link
description
language
atom:link
item
title
description
link
pubDate
/item
/channel
/rss
PHPでのRSSの解析
RSSについて
RSSには、いくつかのバージョンが存在するようです。
wikiを見ると、
RSS 0.9
RSS 0.91
RSS 1.0
RSS 2.0
ん~、迷う必要はなくRSS2.0を使うことに決定です。0,9なんて半端なバージョンなんて使わないよね。
1.0は、ちょっと対応した方がいいかな。とりあえず、2.0で作ります。
早速、アメブロのRSSを見てみます。
中見です。
rss
channel
title //ブログタイトル
link //ブログURL
description //ブログの見出し
language //言語(日本語 ja)
atom:link //RSSのURL
item //各記事
title //記事タイトル
description //記事本文
link //記事URL
pubDate //更新日時
/item
item //各記事
title //記事タイトル
description //記事本文
link //記事URL
pubDate //更新日時
/item
~
/channel
/rss
ついでに、FC2のRSSも見てみます。
rdf:RDF
channel
title
link
description
dc:language
items
rdf:Seq
rdf:li
rdf:li
rdf:li
/rdf:Seq
/items
/channel
item
link
title
description
content:encoded
dc:subject
dc:date
dc:creator
dc:publisher
/item
item
link
title
description
content:encoded
dc:subject
dc:date
dc:creator
dc:publisher
/item
/rdf:RDF
だいぶ違いますね・・・
FC2はRSS1.0みたいです。こりゃ、1.0から対応した方がよさそうです。
しかし、RSSのバージョンってどこみればわかるのかな。
見たかんじ、ルートノードがか、かでバージョン判断するしかないかな。
そんなことないねwXML/RSS使えば簡単に出来そうじゃん。
↓のコードでうまく取得出来そう。
require_once("XML/RSS.php");
$rss =& new XML_RSS("1.0.xml");
$rss->parse();
foreach ($rss->getItems() as $item)
{
echo $item['title']."\n";
}
echo "\n----------------\n\n\n";
$rss2 =& new XML_RSS("2.0.xml");
$rss2->parse();
foreach ($rss2->getItems() as $item)
{
echo $item['title']."\n";
}
実行結果
# php parse.php
【コーディング】ブログを簡単に見るヤツ8
【コーディング】ブログを簡単に見るヤツ7
【コーディング】ブログを簡単に見るヤツ6
【コーディング】ブログを簡単に見るヤツ5
ブログを簡単に見るヤツの予定
【コーディング】ブログを簡単に見るヤツ4
PHPのログ
【設計】ブログを簡単に見るヤツ5
PR: 【NEC】固定回線のない場所でFAX!?
【コーディング】ブログを簡単に見るヤツ3
【コーディング】ブログを簡単に見るヤツ2
----------------
【コーディング】ブログを簡単に見るヤツ8
【コーディング】ブログを簡単に見るヤツ7
【コーディング】ブログを簡単に見るヤツ6
【コーディング】ブログを簡単に見るヤツ5
ブログを簡単に見るヤツの予定
PR: 大手・注目の広告・Web会社の転職ならマスメディアン
【コーディング】ブログを簡単に見るヤツ4
PR: 大手・注目の広告・IT会社への転職ならマスメディアン
PHPのログ
【設計】ブログを簡単に見るヤツ5
【コーディング】ブログを簡単に見るヤツ3
【コーディング】ブログを簡単に見るヤツ2
途中に入る広告が気になる。。。
RSSには、いくつかのバージョンが存在するようです。
wikiを見ると、
RSS 0.9
RSS 0.91
RSS 1.0
RSS 2.0
ん~、迷う必要はなくRSS2.0を使うことに決定です。0,9なんて半端なバージョンなんて使わないよね。
1.0は、ちょっと対応した方がいいかな。とりあえず、2.0で作ります。
早速、アメブロのRSSを見てみます。
中見です。
rss
channel
title //ブログタイトル
link //ブログURL
description //ブログの見出し
language //言語(日本語 ja)
atom:link //RSSのURL
item //各記事
title //記事タイトル
description //記事本文
link //記事URL
pubDate //更新日時
/item
item //各記事
title //記事タイトル
description //記事本文
link //記事URL
pubDate //更新日時
/item
~
/channel
/rss
ついでに、FC2のRSSも見てみます。
rdf:RDF
channel
title
link
description
dc:language
items
rdf:Seq
rdf:li
rdf:li
rdf:li
/rdf:Seq
/items
/channel
item
link
title
description
content:encoded
dc:subject
dc:date
dc:creator
dc:publisher
/item
item
link
title
description
content:encoded
dc:subject
dc:date
dc:creator
dc:publisher
/item
/rdf:RDF
だいぶ違いますね・・・
FC2はRSS1.0みたいです。こりゃ、1.0から対応した方がよさそうです。
しかし、RSSのバージョンってどこみればわかるのかな。
見たかんじ、ルートノードが
そんなことないねwXML/RSS使えば簡単に出来そうじゃん。
↓のコードでうまく取得出来そう。
require_once("XML/RSS.php");
$rss =& new XML_RSS("1.0.xml");
$rss->parse();
foreach ($rss->getItems() as $item)
{
echo $item['title']."\n";
}
echo "\n----------------\n\n\n";
$rss2 =& new XML_RSS("2.0.xml");
$rss2->parse();
foreach ($rss2->getItems() as $item)
{
echo $item['title']."\n";
}
実行結果
# php parse.php
【コーディング】ブログを簡単に見るヤツ8
【コーディング】ブログを簡単に見るヤツ7
【コーディング】ブログを簡単に見るヤツ6
【コーディング】ブログを簡単に見るヤツ5
ブログを簡単に見るヤツの予定
【コーディング】ブログを簡単に見るヤツ4
PHPのログ
【設計】ブログを簡単に見るヤツ5
PR: 【NEC】固定回線のない場所でFAX!?
【コーディング】ブログを簡単に見るヤツ3
【コーディング】ブログを簡単に見るヤツ2
----------------
【コーディング】ブログを簡単に見るヤツ8
【コーディング】ブログを簡単に見るヤツ7
【コーディング】ブログを簡単に見るヤツ6
【コーディング】ブログを簡単に見るヤツ5
ブログを簡単に見るヤツの予定
PR: 大手・注目の広告・Web会社の転職ならマスメディアン
【コーディング】ブログを簡単に見るヤツ4
PR: 大手・注目の広告・IT会社への転職ならマスメディアン
PHPのログ
【設計】ブログを簡単に見るヤツ5
【コーディング】ブログを簡単に見るヤツ3
【コーディング】ブログを簡単に見るヤツ2
途中に入る広告が気になる。。。
【コーディング】ブログを簡単に見るヤツ8
メール送信時間を変更する処理です。
まず、必要なパラメータ。
ID アカウントのID
MAILTIME 設定する値
処理の流れ
1.ログインチェック → ログインしていなかったら、セッションクリアしてTOPにリダイレクト
2.パラメータチェック → エラーがあったら、X-StatにERR_ID_INVALID(502)を設定してレスポンス。
・ID 数値であること。
・MAILTIME 0~23であること。
3.設定対象のIDが存在すること。 → 存在しない場合は、X-StatにERR_NOTFOUND(402)を設定してレスポンス。
前回と同じ方法で存在するか確認
4.MAILTIMEを更新する。 → 更新成功したら、X-StatにSUCCESS(200)を設定してレスポンス。
使うSQL
update tbl_user set MAILTIME = ? where ID = ?
$stmt->bind_param("si", $mailtime, $id);
---------出来た---------
・ログイン
・ログインチェック
・RSS登録
・RSS解除
・ログアウト
・メール送信フラグ設定
・メールアドレス変更/登録
・メール送信時間設定
---------まだ---------
・アカウント登録
・アカウント削除
・オレ専用RSS作成
・メール送信(※sendmailの設定が必要)
次は・・・オレ専用RSS作成処理かな。
アカウントの登録/削除を後回しにしてるのは、最近は大体登録したら狩り登録メールって届きますよね。
それやりたいんですよ。
だから、メールサーバの設定が必要なんですが、これほんと難しいんですよね。
どうしよっかな・・・
まず、必要なパラメータ。
ID アカウントのID
MAILTIME 設定する値
処理の流れ
1.ログインチェック → ログインしていなかったら、セッションクリアしてTOPにリダイレクト
2.パラメータチェック → エラーがあったら、X-StatにERR_ID_INVALID(502)を設定してレスポンス。
・ID 数値であること。
・MAILTIME 0~23であること。
3.設定対象のIDが存在すること。 → 存在しない場合は、X-StatにERR_NOTFOUND(402)を設定してレスポンス。
前回と同じ方法で存在するか確認
4.MAILTIMEを更新する。 → 更新成功したら、X-StatにSUCCESS(200)を設定してレスポンス。
使うSQL
update tbl_user set MAILTIME = ? where ID = ?
$stmt->bind_param("si", $mailtime, $id);
---------出来た---------
・ログイン
・ログインチェック
・RSS登録
・RSS解除
・ログアウト
・メール送信フラグ設定
・メールアドレス変更
・メール送信時間設定
---------まだ---------
・アカウント登録
・アカウント削除
・オレ専用RSS作成
・メール送信(※sendmailの設定が必要)
次は・・・オレ専用RSS作成処理かな。
アカウントの登録/削除を後回しにしてるのは、最近は大体登録したら狩り登録メールって届きますよね。
それやりたいんですよ。
だから、メールサーバの設定が必要なんですが、これほんと難しいんですよね。
どうしよっかな・・・
【コーディング】ブログを簡単に見るヤツ7
メールアドレスを変更する処理です。
まず、必要なパラメータ。
ID アカウントのID
MAIL 設定する値
処理の流れ
1.ログインチェック → ログインしていなかったら、セッションクリアしてTOPにリダイレクト
2.パラメータチェック → エラーがあったら、X-StatにERR_ID_INVALID(502)を設定してレスポンス。
・ID 数値であること。
・MAIL 正しいメールアドレス形式であること。
3.設定対象のIDが存在すること。 → 存在しない場合は、X-StatにERR_NOTFOUND(402)を設定してレスポンス。
前回と同じ方法で存在するか確認
4.MAILを更新する。 → 更新成功したら、X-StatにSUCCESS(200)を設定してレスポンス。
使うSQL
update tbl_user set MAIL = ? where ID = ?
$stmt->bind_param("si", $mail, $id);
---------出来た---------
・ログイン
・ログインチェック
・RSS登録
・RSS解除
・ログアウト
・メール送信フラグ設定
・メールアドレス変更/登録
---------まだ---------
・アカウント登録
・アカウント削除
・メール送信時間設定
・オレ専用RSS作成
・メール送信(※sendmailの設定が必要)
次は、メール送信時間設定。
まず、必要なパラメータ。
ID アカウントのID
MAIL 設定する値
処理の流れ
1.ログインチェック → ログインしていなかったら、セッションクリアしてTOPにリダイレクト
2.パラメータチェック → エラーがあったら、X-StatにERR_ID_INVALID(502)を設定してレスポンス。
・ID 数値であること。
・MAIL 正しいメールアドレス形式であること。
3.設定対象のIDが存在すること。 → 存在しない場合は、X-StatにERR_NOTFOUND(402)を設定してレスポンス。
前回と同じ方法で存在するか確認
4.MAILを更新する。 → 更新成功したら、X-StatにSUCCESS(200)を設定してレスポンス。
使うSQL
update tbl_user set MAIL = ? where ID = ?
$stmt->bind_param("si", $mail, $id);
---------出来た---------
・ログイン
・ログインチェック
・RSS登録
・RSS解除
・ログアウト
・メール送信フラグ設定
・メールアドレス変更
---------まだ---------
・アカウント登録
・アカウント削除
・メール送信時間設定
・オレ専用RSS作成
・メール送信(※sendmailの設定が必要)
次は、メール送信時間設定。
【コーディング】ブログを簡単に見るヤツ6
メール送信フラグ設定を変更する処理です。
まず、必要なパラメータ。
ID アカウントのID
MAILFLAG 設定する値(1か0)
処理の流れ
1.ログインチェック → ログインしていなかったら、セッションクリアしてTOPにリダイレクト
2.パラメータチェック → エラーがあったら、X-StatにERR_ID_INVALID(502)を設定してレスポンス。
・ID 数値であること。
・MAILFLAG 0 か1 であること。
3.設定対象のIDが存在すること。 → 存在しない場合は、X-StatにERR_NOTFOUND(402)を設定してレスポンス。
使うSQL
select count(id) from tbl_user where ID = ?
$stmt->bind_param("i", $id);
4.MAILFLAGを更新する。 → 更新成功したら、X-StatにSUCCESS(200)を設定してレスポンス。
使うSQL
update tbl_user set MAILFLAG = ? where ID = ?
$stmt->bind_param("ii", $flag, $id);
---------出来た---------
・ログイン
・ログインチェック
・RSS登録
・RSS解除
・ログアウト
・メール送信フラグ設定
---------まだ---------
・アカウント登録
・アカウント削除
・メール送信時間設定
・メールアドレス変更/登録
・オレ専用RSS作成
・メール送信(※sendmailの設定が必要)
次は、メールアドレス変更/登録あたりかな。
メール関連は、一番最後に廻そう。
まず、必要なパラメータ。
ID アカウントのID
MAILFLAG 設定する値(1か0)
処理の流れ
1.ログインチェック → ログインしていなかったら、セッションクリアしてTOPにリダイレクト
2.パラメータチェック → エラーがあったら、X-StatにERR_ID_INVALID(502)を設定してレスポンス。
・ID 数値であること。
・MAILFLAG 0 か1 であること。
3.設定対象のIDが存在すること。 → 存在しない場合は、X-StatにERR_NOTFOUND(402)を設定してレスポンス。
使うSQL
select count(id) from tbl_user where ID = ?
$stmt->bind_param("i", $id);
4.MAILFLAGを更新する。 → 更新成功したら、X-StatにSUCCESS(200)を設定してレスポンス。
使うSQL
update tbl_user set MAILFLAG = ? where ID = ?
$stmt->bind_param("ii", $flag, $id);
---------出来た---------
・ログイン
・ログインチェック
・RSS登録
・RSS解除
・ログアウト
・メール送信フラグ設定
---------まだ---------
・アカウント登録
・アカウント削除
・メール送信時間設定
・メールアドレス変更/登録
・オレ専用RSS作成
・メール送信(※sendmailの設定が必要)
次は、メールアドレス変更/登録あたりかな。
メール関連は、一番最後に廻そう。