• 締切済み

PHPの出力した内容をまるごとキャッシュしたい

PHPで出力した内容をキャッシュして利用したいのですが、どのようにすればいいのでしょうか。 例えば $a = 1; $b = 2; $c = $a + $b; echo '<div>'.$c.'</div>'; という結果の「<div>3</div>」をキャッシュして次回から表示したいのです。 (PEAR::Cache_Liteで実現できないかな、と思っているのですが・・・。) よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数2

みんなの回答

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.2

がると申します。 んと…何をしたいのかがもう一つ見えないのですが。 とりあえず http://jp.php.net/manual/ja/ref.outcontrol.php が参考になりませんでしょうか? 一度変数に出力を格納して、「ファイルに書き出しつつ」「標準出力にも出力する」ロジックを書けばよいと思うのですが。 別にPEAR使うほどのことでもありません。 ただ。通常、PHPは「動的なHTMLをはき出す」ものなので、十二分にお気を付けください。

tech_0
質問者

お礼

皆様のおかげで解決しました。 ありがとうございます。

回答No.1

PEAR::Cache_Liteを使ったことが無いのですが、出来るのではないでしょうか? また、キャッシュを使うとき、どのようなキャッシュを使いたいのかを考える必要があります。  1.クライアント側にキャッシュさせる  2.サーバー側にキャッシュさせる    1.ページキャッシュ    2.クエリキャッシュ 詳しくは以下のようなページを。 ThinkITさんの記事 http://www.thinkit.co.jp/free/marugoto/2/1/6/1.html Cache_Liteのドキュメントを簡単に見た感じでは上記のページキャッシュやクエリキャッシュに当たるかな?と思います。(ThinkITさんの記事にある出力キャッシュ) 例えば $a = 1; $b = 2; $c = $a + $b; echo '<div>'.$c.'</div>'; この様な簡素な処理をキャッシュさせることは逆に負荷を高めることになると思います。 Cache_Limitの使い方は参考URLにあるサンプルを見ることで何となく解るのではないかと思います。

参考URL:
http://pear.php.net/manual/en/package.caching.cache-lite.cache-lite.save.php
tech_0
質問者

お礼

ありがとうございます。 Cache_Limitの使い方も確認してみます。

関連するQ&A

  • PHP5のtry cacheをPHP4で実現できる方法

    PHP4.3系を使っています。 PHP5からは try{}cache(){}が使えるようですが、それに近い記述で (将来PHP5に変えるかもしれませんので)実現できる方法はありますか? PHP5のような記述をPHP4.3系では? try{ test_a(); test_b(); test_c(); }cache(...){ test_rollback(); }

    • ベストアンサー
    • PHP
  • PHPにおいて<? PHP ?>の外の出力内容

    PHPにおいて PHPタグ つまり <?php ?> にかこまれた外の箇所ですが<?php ?> の外は、php言語構造のechoやprintといったもので出力されたものと 同等の意味をもつとどこかで読んだ気がします。 どなたか、上記のような内容に準する記述のあるサイトをご存知ありませんか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpのECHOが出力されない:wordpress

    A B C "text" というJSONデータのCを画面に出したい時、 echo $obj['A']['B']['C']; もしくは echo $obj->A->B->C; という文をphpの中に書き込んだのですが、 echo ”Halloworld”とかは出るのに、変数になると出ません。 ちなみにfunction.phpでショートコードから呼び出すファイルに記述しています。 何が間違っているのでしょうか。

    • 締切済み
    • PHP
  • JavaScriptとphpでできますか?

    お世話になります。 ずーっと考えているのですが、実現方法及び、実現できるのかどうか、 で悩んでいます。 アドバイスをお願いいたします。 Aさんが、あるサイトのボタンクリックすると、Bさんの待ち受け画面htmlにつながります。 (ここまでは某APIにて実現しています(電話)) その際に、追加でAさんのURLをBさんのサイトに表示させたいのです。 方法として、Aさんがボタンクリックしたときに、JavaScriptでURLを取得し、 POSTデータにして、ajax通信でBさんのサイトにあるphpを実行。 でも、phpでURLデータは取得できるとして、その後、どうやってBさんのhtmlに出力させるの(既にhtmlは表示されているし)? Bさんhtmlの中の表示させたい<div>などに <?php echo "{$url}"; ?>などできる? もし出来たとして、その場合、Aさんは(ソースコードレベルで)どうやってBさんにデータを渡すの? phpを実行させるの? phpの名前は? Aさん、Bさんのhtmlは同一Webサーバーです。 Bさんのhtmlは最初から表示されています。 考えても、考えても 出来そうで出来ない。。。 こんなことは出来ないのでしょうか? どなたかアドバイスをお願いいたします。

    • ベストアンサー
    • PHP
  • array_fill について php

    <?php $a = array_fill(-2, 4, 'pear'); print_r($a); ?> Array ( [-2] => pear [0] => pear [1] => pear [2] => pear ) 出力結果なのですが、配列で[-1]がないのはなぜでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPから別なPHPへ移動(?)する方法

    実現する命令ごとにPHPのファイルを分けて作りました。 A.phpで画面表示して命令によりファイ路を操作するB.php,C.phpを実行。 処理完了後にA.phpに戻るようにしようと思っています。 しかし、B.phpとC.phpからA.phpを表示させる(戻る)方法がわからずにいます。 echo fopen('A.php','r'); でいけるかな?と思っていましたがうまくいきませんでした。 よろしくお願いします。

    • 締切済み
    • PHP
  • PHPの不等式に変数を使う

    いつもお世話になります PHPの不等式に変数を使うことは出来ますでしょうか? 例えば $a = 'huga'; $b = 'huga'; if($a == $b){ echo 'hoge'; } 結果 hoge 右辺と左辺の間、不等式を変数にしたいです $a = 'huga'; $b = 'huga'; $c = '==' if($a $c $b){ echo 'hoge'; } 期待する結果 hoge 上のソースはもちろんパースエラーとなり成り立ちません 型変換や考えられるキーワードで検索したのですが、出てきませんでした 下のように strpos()、strstr()等で$cの内容を解析して、条件分岐すれば期待の結果が出せるのは分かります if( strpos($c,'==') !== false && $a == $b){ echo 'hoge'; } (上記で成り立つのは分かります) 教えていただきたい内容は、「不等式を変数で成り立たせる方法」です $c= '=='; PHPに詳しい方お教えいただけると嬉しいです

    • ベストアンサー
    • PHP
  • PHP コードを文字列として出力する方法

    お世話になります ダブルクォーテーションで囲っても 「PHP コード」を「文字列」として出力する方法 つまり、evalの逆の関数のようなものはありますでしょうか $a['huga'] = 2; $b['hoge'] = 3; //式 $c = $a['huga'] * $b['hoge'] ; abc($c = $a['huga'] * $b['hoge'] ); function abc($str){ //ここでなんちゃらほんちゃら //もしくはfunctionの外側でなんちゃらもでも可 echo $str; } 期待する出力結果 $c = $a['huga'] * $b['hoge'] ; 実際の結果 6 $の前に¥を入れてダブルクォーテーションで囲めば、 または、シングルクォーテーションの前に¥を入れてシングルクォーテーションで囲めば 文字列になるのはわかりますが 式の文字列には直接、手を加えず関数等で実現するやり方が知りたいです ※連想配列のキーの囲み文字はシングルクォーテーションです、ダブルに出来ない条件でお願いします。 お忙しい中恐縮ですが熟練者の方でわかる方がいましたら お教え下さいませ

    • ベストアンサー
    • PHP
  • phpでオブジェクト化に挑戦中です。配列がうまく扱えません。

    このようなサンプルプログラムを作ってみました どうやら配列がまずいようなのですが、どうすればよいでしょうか。 <?php class TEST2{ var $b1; } class TEST{ var $a1=TEST2; function printout(){ $this->$a1[0]->b1='123 '; $this->$a1[1]->b1='abc '; $this->$a1[2]->b1='DEF '; } } $c = new TEST; $c->printout(); echo $c->$a1[0]->b1; echo $c->$a1[1]->b1; echo $c->$a1[2]->b1; ?> ちなみに出力結果は DEF DEF DEF となりました。 疑問1.なぜ全部同じ結果になるのか 疑問2.配列だと echo $c->$a1[2]->b1; のように、$a1と、$マークがないと動かない。$を取ると強制終了される。 お願いします。へんてこな質問ですみません。

    • 締切済み
    • PHP
  • require Auth.php

    require 'Auth/Auth.php'; の動作について教えてください。 サンプルソース a.php に、 「require 'Auth/Auth.php';」と冒頭に記述してありました。 PEARだと思うのですが、結局この記述は、 a.phpに、 (1)Auth.phpの内容を取り込む? (2)Auth.phpの内容を継承する? どちらの解釈の方が正しいのでしょうか? 今までrequire だと、指定したphpの内容を取り込む((1)番だと)だと認識していました。 以下ソースのように動作してると思っています。Auth.phpも同じ動作と思っていいものなのでしょうか。 ・test.php <?php echo "start!!\n"; include("include.php"); echo "end!!\n"; ?> ・include.php <?php echo "include start!!\n" ?> ●実行結果 start!! include start!! end!!

    • ベストアンサー
    • PHP

専門家に質問してみよう