人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

●質問者: k2017
●カテゴリ:ウェブ制作
✍キーワード:HTML HTTP PHP [php] コマンド
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● ito-yu
●20ポイント

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

php -f hoge.php > outfile

で出来ます。

◎質問者からの返答

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


2 ● tadashi0805
●20ポイント

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

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

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

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

◎質問者からの返答

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


3 ● ito-yu
●20ポイント

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

ob_start();

// いろいろ出力

$content = ob_get_contents();

ob_end_clean();

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

◎質問者からの返答

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


4 ● heppokoA
●20ポイント

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

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

◎質問者からの返答

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


5 ● えるふん
●20ポイント

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

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

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

http://php.net/eval

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ