会社の窓から見える家のアンテナが折れていることが気になるYu-ichiです
今回は大苦戦したcronを使った自動実行について・・・です。
「WordPressのRSSを取得する」という記事を前に書きました。
その取得した情報を「MagpieRSS」というRSSパーサーを使って
静的なホームページ上に埋め込んでいたりします。
(使い方などはそのうちご紹介します・・・たぶん)
その時に、埋め込む数が多くなってしまうと・・・
かなりページの表示に時間がかかってしまう、なんともレスポンスの悪いサイトが出来上がります。
でもどうしても使いたい!
そんなときには、取得したRSSをテキストファイルなどに落としてそれを使う方法があります。
表示用のキャッシュを作ってしまうわけですね。
しかし、これにもキャッシュを作るタイミングが必要になってきます。
ページを表示させたタイミングでは、不特定多数のアクセスが考えられますので
あまり実用的ではありません。
記事が投稿されたタイミングで・・・という方法もありますが、そこまではわかりません。
そこで、サーバのcronを使って定期的に書き出してしまう方法をやってみたのですが
四苦八苦したので、忘れないうちにブログにメモっておきます。
1.MagpieRSSで、表示用のキャッシュを出力する記述を追加します。
rss.phpをカスタマイズする必要がありますが、「echo」の部分
echo “<li><a href=\”$url\”>$title</a></li>\n”;
をコメントアウトして、代わりに「$text」に代入
$text.= “<li><a href=\”$url\”>$title</a></li>\n”;
とかしておけば大丈夫でしょう。
ここら辺は、表示する項目をタイトルだけじゃなく日付もとか、
最新の5件分だけ表示させたいなど、カスタマイズしているでしょうから、柔軟に対応して下さいw
そのあと、
//ファイルを開く
$fp=@fopen(“print_cache.txt“,”w”) or die(“ファイルのオープンに失敗しました”);
//ファイルに書く
fputs($fp,$text);
//ファイルを閉じる
fclose($fp);
を追加して、表示用キャッシュファイルに書き込みます。
あとはパーミッションの設定とかごにょごにょして・・・準備完了。
まずは、rss.phpにアクセスして、キャッシュが生成されるかテスト。
あ、print_cache.txtは自分で用意しておいてくださいね。
次にHTMLから、print_cache.txtをインクルードして、表示されるかテストしておきます。
これでなんとか
rss.phpにアクセスキャッシュ生成HTMLにインクルード
という流れが出来たと思います。
さて、いよいよ「rss.php」にアクセスすることで動作した部分を
cronを使って定期的に自動実行させようと思います。
それはまた、次回のお楽しみということで
ランキングクリックしていただけると、やる気がでますのでお願いします!