PHP講習会私的メモ(第6回)

9月末に通っていたPHP講習会の私的メモ。
最終回(第6回)が終わって2ヵ月が経ち、今更ながら慌てて復習記事をアップしたのは昨日から同じ会社の「セキュリティ編」に出席しているためです。
なお何度も繰り返しますが、小生の知識レベルはASP(.NETでない)は基本レベル、Perlをかじった程度です。
●トラックバックの実装
今まで作ってきたブログシステムにトラックバック機能を実装します。
トラックバックの仕組みは理解していましたが、技術的な側面を今回初めて知ることができました。
「トラックバックpingを打つ」と言いますが、その実態は単なるPOSTによる値の送信なのでした。
(てっきりコマンドの「ping」と関係ある通信方式だと思っていた)
ということは、別にブログでなくてもフォームを用意すれば、どんなブログにでもトラックバックを打ち込めるのでは・・・?
トラックバック送信フォームを作成できそうだ(悪用厳禁)。
なお文字コードはUTF-8からEUC-JPへの変換が必要。
$tb_blog_id=sqlite_escape_string(iconv("UTF-8", "EUC-JP", $_REQUEST["blog_id"]));
$tb_title=sqlite_escape_string(iconv("UTF-8", "EUC-JP", $_POST["title"]));
$tb_excerpt=sqlite_escape_string(iconv("UTF-8", "EUC-JP", $_POST["excerpt"]));
$tb_url=sqlite_escape_string(iconv("UTF-8", "EUC-JP", $_POST["url"]));
$tb_blog_name=sqlite_escape_string(iconv("UTF-8", "EUC-JP", $_POST["blog_name"])

なおトラックバックの受信側は次のレスポンスを返す必要がある。
トラックバックが成功(受信できた)の場合。
<?xml version="1.0" encoding="iso-8859-1"?><response><error>0</error></response>
失敗(エラー)の場合。
<?xml version="1.0" encoding="iso-8859-1"?><response><error>1</error><message>error!</message></response>
参照
トラックバック技術仕様書
http://lowlife.jp/yasusii/stories/8.html

●RSSの配信
RSSについても日々利用しているので一定フォーマットのテキストファイルだとはわかっていました。
今回はテキストファイルを書き出すのではなくrss.phpを用意してヘッダにContent-Type: text/xmlを出力しています。
RSSのフォーマットはこんな感じ(smartyでループさせる)。
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>ブログのタイトル</title>
<link>http://umakoya.com/</link>
<language>ja</language>
{foreach from=$blog_list item=blog}
<item>
<title>{$blog.blog_title}</title>
<link>http://umakoya.com/blog/detail.php?blog_id={$blog.blog_id}</link>
<description>{$blog.blog_body}</description>
<pubDate>{$blog.blog_date}</pubDate>
<author>馬小屋</author>
</item>
{/foreach}
</channel>
</rss>

講義内容は以上でしたが、実際はコードを書く作業が大半。
持ち帰りでいろいろな課題を出されましたが、いまだ手付かず。
正月くらいにPHP本を1冊読みながらコードを打ってみたいと思っています。
どこかで評価されていた参考書籍

Eclipse3ではじめるPHP5プログラミング入門
掌田 津耶乃
秀和システム
売り上げランキング: 179046
おすすめ度の平均: 4.0

3 内容は充実しています。
5 EcliceでPHP

コメント

タイトルとURLをコピーしました