2007.06.15 Friday

キャッシュ処理を簡単に

PHPでWebAPIを使って、いろんなプログラムを作っていると、知らず知らずのうちに、検索エンジンが暴れまくって、一日の転送量が1ギガを越えてしまうことになってしまいます。
このため、キャッシュ処理を入れて、少しでもサーバー負荷を軽くした方がよいのですが、そんなときは、その処理をサブルーチンかしておくと楽にコーディングできます。

--
続きを読む>>

2007.04.12 Thursday

HTMLのパース

まずは、サンプルサイト
DeepRSS
をご覧ください。
このサンプルサイトは、単一RSSファイルを解析し、RSSが持っているリンク先の内容を取得し、UIで指定した、開始マークから終了マーク間のデータを表示する、というサンプルです。
サンプルとして作ったものなのですが、意外と実用性が高くて、個人的に使っています。
ニュースサイトのRSSでは、概要しか配信してくれないので、全文が一気に見れて、なかなかGoodです。
続きを読む>>

2007.04.08 Sunday

文字列中の相対パスを絶対パスに変換

文字列中の相対パスを絶対パスに変換する方法をメモ。

例えば、
文字列が
$cdata = '<img src="images/fuga.jpg" class="pict" alt="" width="240" height="400" />
<p>本文</p>';

と与えられた場合、そのページ以外からは画像の表示が出来ないので、絶対パスに変換してあげる必要があるわけです。
RSSというのは、自分以外のページからコールされるのが基本なので、RSSに相対パス状態で情報を格納するのはどうなんだ?
というのはありますが、現実としてこういうフィードがあるのは事実なので、使う側で何とかしてあげないと、どうにもなりません。
ときおり、特定のRSSリーダーだけで特定のフィードの画像が表示されない、というのは、こういう理由からです。
また、外部サイトからの画像読み込みを禁止しているサイトもあるので、そういうところは、どうにもなりませんが・・・
続きを読む>>

2007.04.05 Thursday

自然文検索に対応したOkSearchAPI

OK TellMe
というウェブサイトがあるのですが、ここで利用できるのが、自然文検索(話し言葉による入力)による検索。
検索対象は、QAサイトである、OKWaveのデータです。
あわせて、ウェブプログラマ向けにAPIの仕様が公開されているので、サンプルページを作ってみました。
自然文検索に対応したOkSearchAPIのサンプルページ
続きを読む>>

2007.04.04 Wednesday

RSSリーダーを作る

RSSリーダーを作る、といっても、高機能なものを作るわけでなければ、
比較的簡単に、かつ、自分に必要な機能を備えるRSSリーダーが出来ます。
WX320Kを購入してから、OperaサーバーサービスのRSS機能を使用していたのですが、登録したフィードが消失したり、途中までしか読み込まなかったり、一部のフィードの登録が出来なかったり、背景色が黒で現在のUIにあっていない、本文の文字サイズが微妙に小さくて拡大率がアバウトな関係もあって読みにくい、などなど、様々な問題点があったので、このOperaサーバーサービスのRSS機能の代用が目的です。

自分で作れば、背景色や文字サイズだけでなく、表示内容も自分の好きなように出来ます。

続きを読む>>

2007.04.02 Monday

指定文字列に挟まれた文字列を返す

例えば、
1位 「黄砂」 2位 「ソロモン諸島」 3位 「ハンゲーム」 (2007年4月2日 10時 )

という文字列があったとします。
この文字列から、「」に挟まれた文字列を取得する方法を考えてみます。

単に、文字列Aと文字列Bの間に挟まれた文字列Cを取得したければ、
preg_match
を使うのが一番簡単ですが、初心者は正規表現の扱いに慣れていない方が多いでしょうから、strposとsubstrを組み合わせて作ってみます。
(正規表現を使った例もページの最後で紹介しておきます)

--
続きを読む>>

2007.03.16 Friday

RSS2.0:独自拡張(属性指定)のパース

RSS2.0では、ベンダーが独自拡張できるようになっています。
例えば、
<item><title>タイトル</title><hoge:image xmlns:hoge="http://hoge.com/rss/" class="small" url="http://hoge.com/small.gif" height="70" width="49" /><hoge:image xmlns:hoge="http://hoge.com/rss/" class="large" url="http://hoge.com/large.gif" height="100" width="69" /></item>

と、こんな感じで、一つのアイテムの中に
small,largeの情報を持てたりするわけです。
ただ、独自拡張なだけに、パースするには、それなりの労力が必要。

ということで、簡単にメモ。
続きを読む>>

2007.03.09 Friday

XMLをキャッシュ

ちょっと前の記事で、
AmazonWebServiceのXMLがPearのCache_Liteでキャッシュできないんだよなあ・・・
と書いていたのですが、
Cache_Lite::save
マニュアルを参照すると、出来なくて当然。
引数が、stringですね。
マニュアルは、よく読め、と。
続きを読む>>

2007.03.06 Tuesday

リファラーの文字コード変換

リファラーをJavaScript経由で取得する場合は、
URLエンコードされている関係で、キーワードが
%83u%83%8D%83O%83p%81%5B%83c%82%CC%8D%EC%82%E8%95%FB
といった数値で表現されるわけですが、
ちょっと前の記事では、文字コードによって処理を分けていたのですが、
そんなことをしなくてもOKでした。
続きを読む>>

2007.03.02 Friday

その変数、値がはいってますか?

PHPでは、変数の型は自動的に決定されます。
このため、文字、数字を意識しないで、そのままprintできたりして、何気に便利なのですが、その変数に値が入っていない場合、妙な表示になったりします。
続きを読む>>
<< 2/3 >>