- ベストアンサー
includeができない
includeでおかしな動きがあり、困っています。 ●ケース1 include ("check.php"); こちらは問題なく稼働します。 ●ケース2 include ("http://xxx.com/check.php"); この書式だと動作しません。 ちなみに、ケース1の場合も、実行ファイル、includeするファイルとも、 http://xxx.com/ 配下に存在しています。 ケース2のように、URL表記で外部ファイルを取り込むようにするには どうすればよろしいのでしょうか? よろしくご指導お願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>ケース1の場合は、phpinfo()の結果が表示されます。 >ケース2の場合には、何も表示されません。 >これは、正しい動きなのでしょうか? 正しい動きだと思います。 ケース1の時はinclude元(check.phpではない方)の処理の一環として phpinfo() が実行されますので、正しく出力されます。 ケース2の場合はinclude元に phpinfo() の実行結果がincludeされます。 (ブラウザで http://xxx.com/chekc.php へアクセした際のHTMLソースがincludeされます) 結果として、PHPのプログラムの中にHTMLが紛れ込むので正しく出力されない可能性が高いと思われます。(プログラム次第では正しく表示できる可能性もあるとは思いますが)
その他の回答 (2)
- t_ohta
- ベストアンサー率38% (5253/13739)
ケース2の時 xxx.com のhttpサーバは check.php のソースを返してきているのでしょうか? もし check.php の処理結果を返してきていたらエラーになります。
補足
コメントありがとうございます。 includeしているファイルは以下の通りです。 ●check.php <?php print phpinfo(); ?> ケース1の場合は、phpinfo()の結果が表示されます。 ケース2の場合には、何も表示されません。 これは、正しい動きなのでしょうか?
- mookun2007
- ベストアンサー率59% (28/47)
マニュアルを見ましょう。 一言言わせてもらうと、実務でリモートのファイルをインクルードする必要があった試しがありませんが。
補足
コメントありがとうございます。 ご紹介いただいたマニュアル(URL)は既に拝見した上での質問でした。 該当URLの、『例3 HTTP経由のinclude()』 が関係している箇所とは思うのですが、私には力量不足で理解できませんでした。 補足説明をいただれば幸いです。
お礼
おかげさまで、現象とその理由がよくわかりました。 ありがとうございました。