<?php include "cgi/hoge.php" ?>
は動作するのですが、
<?php include "http://www.hoge.com/cgi/hoge.php" ?>
は動作しません。
また、
<?php include "cgi/hoge.php?p=7" ?>
も、
<?php include "http://www.hoge.com/cgi/hoge.php?p=7" ?>
も動作しません。
なんとかパラメータを渡したいと考えております。
.htaccess ファイルの設定を変えると、うまく動くのでしょうか。
何か良い方法をご存知の方がいらっしゃいましたら、
ご連絡を何卒宜しくお願い致します。
allow_url_fopenか、allow_url_includeオプションがOffになっている可能性が高いです。(php 5.2以降のバージョンの場合ですが)
設定状況はphpinfo()で見ることができます。
http://jp.php.net/manual/ja/features.remote-files.php
http://jp.php.net/manual/ja/filesystem.configuration.php#ini.all...
これらの項目はPHP_INI_ALLとなっているため、php.iniなどの設定ファイルで記述しなければ設定変更できません。
なので、お使いの環境が共用のレンタルサーバーであれば、そのコードを動かすのは無理です。
とはいえ、include一行で書くのを諦めれば、代替手段はあります。
すればよいので、file_get_contents()とeval()を組み合わせるとか、一時ファイルに保存してsystem('php path/to/tmp.php')で実行するとか(ダサいですね。。。)
まあとにかく頑張ればできるでしょう。
ただ、こんなコードはセキュリティ的にダメダメなので、実際のサービスで使わないほうがいいです。
include先のリモートファイルのコードを盲目的に実行するので、第三者がこのリモートファイルを書き換えられれば、サーバーを壊すようなコードでも実行できてしまいます。
ファイルの内容を取ってきて表示するだけなら、↓で終わりなんですけど、そういうことではないのでしょうか。
<?php echo file_get_contents('http://www.hoge.com/cgi/hoge.php?p=7');
http://www.hoge.com/cgi/hoge.php?p=7 が別サーバーにあって、その実行結果を取りたいというのなら、このhoge.phpをWeb APIのように作るのが簡単かつ一般的なやり方だと思います。
allow_url_fopenか、allow_url_includeオプションがOffになっている可能性が高いです。(php 5.2以降のバージョンの場合ですが)
設定状況はphpinfo()で見ることができます。
http://jp.php.net/manual/ja/features.remote-files.php
http://jp.php.net/manual/ja/filesystem.configuration.php#ini.all...
これらの項目はPHP_INI_ALLとなっているため、php.iniなどの設定ファイルで記述しなければ設定変更できません。
なので、お使いの環境が共用のレンタルサーバーであれば、そのコードを動かすのは無理です。
とはいえ、include一行で書くのを諦めれば、代替手段はあります。
すればよいので、file_get_contents()とeval()を組み合わせるとか、一時ファイルに保存してsystem('php path/to/tmp.php')で実行するとか(ダサいですね。。。)
まあとにかく頑張ればできるでしょう。
ただ、こんなコードはセキュリティ的にダメダメなので、実際のサービスで使わないほうがいいです。
include先のリモートファイルのコードを盲目的に実行するので、第三者がこのリモートファイルを書き換えられれば、サーバーを壊すようなコードでも実行できてしまいます。
ファイルの内容を取ってきて表示するだけなら、↓で終わりなんですけど、そういうことではないのでしょうか。
<?php echo file_get_contents('http://www.hoge.com/cgi/hoge.php?p=7');
http://www.hoge.com/cgi/hoge.php?p=7 が別サーバーにあって、その実行結果を取りたいというのなら、このhoge.phpをWeb APIのように作るのが簡単かつ一般的なやり方だと思います。
コメント(3件)
http://sb.xrea.com/showthread.php?t=10180
ということもあるようです。
だから、「対処できるかどうかは契約しているサーバによる」って事で、
サーバ会社(プロバイダのものならプロバイダ)と契約コースの情報は必須。