• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:はじめて投稿させて頂きます。宜しくお願いします。 )

サーバー上の文字列をローカル環境で実行する方法とは?

このQ&Aのポイント
  • サーバー上から読み込んだ文字列をローカル環境で関数として実行する方法について教えてください。
  • includeやrequire、fopenを使用せずに、サーバー上のファイル内の関数を実行したいです。具体的なやり方を教えてください。
  • LAMPPとPHP5を使用しています。以上の要件を満たす方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.3

#2です。 少し 真剣に考えてみました。 具体的に どういう風に使いたいか分かりませんので、2通り 提示しておきます。 ちなみに、そちらの example.php を file で読み込むのは、実は 何もしていない事になります。 example.phpの実行結果が返るだけですので、test() を読み込んだだけで終わっており、 test()を 実行しない事には 何も表示されません。 その一 ---------------------------------------------------------------------- test.php ---------------------------------------------------------------------- <?php //ファイル読込 $contents = implode('',file("test.txt")); eval($contents); test(); ?> ---------------------------------------------------------------------- test.txt(テキストファイルなので、ブラウザにURL直打ちでブラウザから見れる事に注意) ---------------------------------------------------------------------- function test() { phpinfo(); } ---------------------------------------------------------------------- その二 ---------------------------------------------------------------------- test.php ---------------------------------------------------------------------- <?php //ファイル読込 $contents = implode('',file("test.txt")); eval($contents); ?> ---------------------------------------------------------------------- test.txt ---------------------------------------------------------------------- test(); function test() { phpinfo(); } ----------------------------------------------------------------------

Fujiyamagic
質問者

お礼

なんと!解決しました。 スッキリです。具体的な使用方法としては、ローカル環境にあるウェブサーバを返して、グローバル環境にあるウェブサーバにアクセスし、ローカルサーバとグローバルサーバとのデータのやり取りをするために使用したかったのです。グローバルサーバにあるDBはグローバルサーバ内でのみ接続ができる状態であるので、ローカル環境からだとアクセスできなくて、色々と考えた結果グローバルサーバでアクセス制限を掛け、スクリプトを実行しDBとのやり取りをしようとしていました。 いや~すっきりです。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

あまり深く考えてませんので、ヒント程度に聞き流して置いてください。 > ちなみに、include, require,fopenは使用出来ません。 こんな関数がありますが、実行可能でしょうか? <? $a = "print 'hoge';"; eval($a); ?>

Fujiyamagic
質問者

お礼

ヒントでもご呈示して頂けてたすかります、私はPHPは初心者なので色々とヒントからも得られる物が多く感謝です。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ほんとうに example.php--------------------------------ここから <?php function test() { phpinfo(); } ?> ------------------------------------------ここまで であれば、 file("http://example.com/example.php")); で読み込むとなにも文字列は返ってきません。 なので、なにも実行することはできません。 せめて example.php--------------------------------ここから <?php print <<<eof function test() { phpinfo(); } eof; ?> ------------------------------------------ここまで 的な書き方であれば、create_functionなどと併用すれば なんとかなる可能性はありますが、今のままなら絶対にむり

Fujiyamagic
質問者

お礼

回答ありがとうございます、create_function()は知らなかったです。 参考にさせて頂きます。ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A