ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Let's PHPコミュのコンパイル(キャッシュ)に関する質問

  • mixiチェック
  • このエントリーをはてなブックマークに追加
初めて投稿します。
PHPを勉強を始めて1ヶ月ですが、
なかなかスラスラ書けなくて、挫折気味です・・・

今回、GET関数・CALLBACK関数を使って、
リンクで辿れるWEBを表示するPHPを作ってみました。
(個々のWEBに著作権があるので、自己利用で・・・)

今回は教えてgooを提供しているOKWEBを例に、カテゴリ検索で辿れるように
なったことと、個別質問のリンクはOKWEBへ直接リンクするものにしました。
http://okweb.jp/
ただ同じページをアクセスすると、先方のサーバに負担がかかると思い、
表示した情報をコンパイル化、キャッシュ化することはできないかと思いました。

Smartyとかあるそうだが、まだ難しくて手が出せないです。
もっと単純な関数でできないかと思っています。想定できる関数として・・・

 ・表示したWEBソースをコンパイルしてフォルダへ格納
 ・同じ情報を表示するときにフォルダ内のコンパイル情報を抽出

・・・です。
書籍やWEBで探してみたが、なかなか構文を思いつかないのが現状です。
もしご存知の方いらっしゃれば、情報提供いただければと思います。

もしコミュニティの趣旨に反する内容でしたら放念ください。よろしくお願いします。



ソースはここから。保存・テストはtest.phpで・・・

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Test Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<link rel="StyleSheet" type="text/css" href="http://okweb.jp/community.css">
</head>
<body>
始まり

<?
$test = $_GET['test'];

function callback( $buffer ) {

$buffer = substr( $buffer, strpos( $buffer, '<!-- END Left Header -->' ) );
$buffer = substr( $buffer, 0, strpos( $buffer, '<table cellpadding="0" cellspacing="0" class="width_100per_noborder" summary="Copyright_Box">' ) );

$buffer = str_replace( "oshiete.php3?c=", "test.php?test=", $buffer );
$buffer = str_replace( "kotaeru.php3?q=", "http://okweb.jp/kotaeru.php3?q=", $buffer );

$okweb = $_SERVER['REQUEST_URI'];
$okweb = str_replace( "/test.php?test=", "/oshiete.php3?c=", $okweb );

$buffer = '<hr>This is a test page. Original Page is <a href="http://okweb.jp'. $okweb .'">here</a>. Thanks.<hr>' . $buffer;

return $buffer;

}

ob_start("callback");

include 'http://okweb.jp/oshiete.php3?c=' . $test;

ob_end_flush();
?>

<hr>
-
終わり
</body>
</html>

コメント(2)

$buffer をテキストファイルに書いてしまって、filectimeで最近書いた時間を見てもしXX時間以上経っていたら、またページを取りに言ってテキストファイルを書き直す

というやり方が良いのでは?
>アームさん

ありがとうございます。
smartyでいろいろいじってみましたが、
ようやくコンパイルすることができました。

function callback( $buffer )
をなくせばできますね。

お騒がせしました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Let's PHP 更新情報

Let's PHPのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング