[php] HTMLを出力するPHPプログラムの出力内容をファイルに書き出す効率の良い方法を教えて下さい。


現在はfile_get_contentsでリモートファイルを指定して出力内容をすべて取得→ファイルに書き出しということをやっています。これだとhttpを一回叩く分とても重いです。

コマンドを叩いてPHPを実行し出力内容を取得するということはできないのでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2006/06/13 18:39:42
  • 終了:2006/06/20 18:40:03

回答(5件)

id:ito-yu No.1

ito-yu回答回数323ベストアンサー獲得回数142006/06/13 18:47:29

ポイント20pt

環境が書いてないのでlinuxだと仮定して

php -f hoge.php > outfile

で出来ます。

id:k2017

書き忘れました。PHPプログラムで実現したいです。

2006/06/13 18:55:13
id:tadashi0805 No.2

tadashi0805回答回数287ベストアンサー獲得回数292006/06/13 18:52:46

ポイント20pt

PHPが動いているサーバにログインした状態で、コマンドを直接叩くというイメージでしょうか?

Yesなら、Linuxの場合ですと、コマンドラインで

php -f PHPスクリプトファイル名 >出力ファイル名

とすれば、出力ファイル名のファイルにPHPの出力結果が入ります。

id:k2017

PHPプログラムで実現する方法はありますか?対象ファイルはWEBサーバー上にありリモートでもローカルでも参照できます。

2006/06/13 19:03:00
id:ito-yu No.3

ito-yu回答回数323ベストアンサー獲得回数142006/06/13 18:57:34

ポイント20pt

リモートのスクリプトなのであればfile_get_contentsでいいと思いますが自分自身の出力を取得したいのであれば

ob_start();

// いろいろ出力

$content = ob_get_contents();

ob_end_clean();

で、$contentに取得できます。

id:k2017

リモートでもローカルでも参照できるファイルです。

2006/06/13 19:01:51
id:heppokoA No.4

heppokoA回答回数65ベストアンサー獲得回数72006/06/15 20:49:57

ポイント20pt

前の方もいわれていますが...

ob_start(); と ob_get_contents(); の間で,そのPHPファイルを include() とかで読み込めばいいんじゃないでしょうか?

id:k2017

ターゲットはHTMLファイルを出力するプログラムです。includeしてしまうとPHPプログラムとして認識されてしまいます。

2006/06/15 20:57:51
id:elf No.5

えるふん回答回数76ベストアンサー獲得回数82006/06/16 12:27:42

ポイント20pt

条件により正しく実行できない可能性がありますが,ローカルでファイルをfile_get_contents()で文字列として読み込み,eval()でその文字列を実行するという手段もあります.

条件とは何かURLで引数を渡さなければいけない場合や,読み込み元と読み込み先(あるいは読み込み先が複数ある場合はその読み込み先同士)で変数や独自関数などが衝突したりする場合は実行できないかもしれません.

$php = file_get_contents( $script_file_name);
eval( $php);

http://php.net/eval

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません