• ベストアンサー

includeができない

includeでおかしな動きがあり、困っています。 ●ケース1 include ("check.php"); こちらは問題なく稼働します。 ●ケース2 include ("http://xxx.com/check.php"); この書式だと動作しません。 ちなみに、ケース1の場合も、実行ファイル、includeするファイルとも、 http://xxx.com/ 配下に存在しています。 ケース2のように、URL表記で外部ファイルを取り込むようにするには どうすればよろしいのでしょうか? よろしくご指導お願いいたします。

  • myart
  • お礼率69% (18/26)
  • PHP
  • 回答数3
  • ありがとう数2

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5078/13272)
回答No.3

>ケース1の場合は、phpinfo()の結果が表示されます。 >ケース2の場合には、何も表示されません。 >これは、正しい動きなのでしょうか? 正しい動きだと思います。 ケース1の時はinclude元(check.phpではない方)の処理の一環として phpinfo() が実行されますので、正しく出力されます。 ケース2の場合はinclude元に phpinfo() の実行結果がincludeされます。 (ブラウザで http://xxx.com/chekc.php へアクセした際のHTMLソースがincludeされます) 結果として、PHPのプログラムの中にHTMLが紛れ込むので正しく出力されない可能性が高いと思われます。(プログラム次第では正しく表示できる可能性もあるとは思いますが)

myart
質問者

お礼

おかげさまで、現象とその理由がよくわかりました。 ありがとうございました。

その他の回答 (2)

  • t_ohta
  • ベストアンサー率38% (5078/13272)
回答No.2

ケース2の時 xxx.com のhttpサーバは check.php のソースを返してきているのでしょうか? もし check.php の処理結果を返してきていたらエラーになります。

myart
質問者

補足

コメントありがとうございます。 includeしているファイルは以下の通りです。 ●check.php <?php print phpinfo(); ?> ケース1の場合は、phpinfo()の結果が表示されます。 ケース2の場合には、何も表示されません。 これは、正しい動きなのでしょうか?

回答No.1

マニュアルを見ましょう。 一言言わせてもらうと、実務でリモートのファイルをインクルードする必要があった試しがありませんが。

参考URL:
http://jp.php.net/manual/ja/function.include.php
myart
質問者

補足

コメントありがとうございます。 ご紹介いただいたマニュアル(URL)は既に拝見した上での質問でした。 該当URLの、『例3 HTTP経由のinclude()』 が関係している箇所とは思うのですが、私には力量不足で理解できませんでした。 補足説明をいただれば幸いです。

関連するQ&A

  • includeするファイルの直接呼出しを避けたい

    phpにて、includeしているファイル(仮にxxx.incとします)を直接URL指定された場合、エラーとしたいのですが、どのような手段がありますでしょうか?

    • ベストアンサー
    • PHP
  • includeとinclude_onceの使い分け

    まずマニュアルを。 ------------------------------------------------------ PHP: include_once - Manual http://www.php.net/manual/ja/function.include-once.php include_once 命令は、スクリプトの実行時に指定したファイルを読み込み評価します。この動作は、include 命令と似ていますが、ファイルからのコードが既に読み込まれている場合は、再度読み込まれないという重要な違いがあります。その名が示す通り、ファイルは一度しか読み込まれません。 include_once は、スクリプトの実行時に同じファイルが複数回読み込まれ、評価される可能性がある場合に、関数の再定義や 変数値の再代入といった問題を回避するために一回だけ読み込ませるために使用します。 ------------------------------------------------------ …。表面的な機能の違いはわかりました。しかしそれをどう使い分けるのかの説明はなく、分かりませんでした。 よく分からない点は以下です。 ・同じファイルを何度も「include」もしくは「include_once」するケース ・あえて何度も記述しながら実際には1度しか評価してほしくないケース ・何度も記述して、そのつど評価したいケース これらについて例を挙げて教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • INCLUDE VIRTUALで読み込むファイルのパス

    <!--#INCLUDE VIRTUAL="/xxx.html"-->でメニュー部分などを1つのHTML(xxx.html)で読み込みたいです。ただ、メニュー部分のHTML側の画像URLなどを相対パスで記載したすると<!--#INCLUDE VIRTUAL="/xxx.html"-->を記載するファイルに階層が異なるものがあったときには、パスが違ういうことになってしまいます。(xxx.html自体は読み込めるのですが、画像URLなどが異なってしまう)これは絶対パスで記載するしかないのでしょうか?

    • ベストアンサー
    • HTML
  • インクルードした部分が表示されない

    サイドバーなど、すべてのページに共有する部分を外部ファイルにし、下の例のようにインクルードさせています。 ↓(例)↓ <? php require("http://○○○/sample.txt"); ?> 拡張子は、htmlにしたかったので、PHPが利用できるように、.htaccessで設定しています。 これで普通のページはちゃんと表示され、問題はなかったのですが、 メールフォームやYomi-Search、Movable Typeの検索結果など、 CGI?(? % & などがつくURL)のページでは インクルードさせている部分が真っ白になってしまいます。 ソースを見ると、 <? php require("http://○○○/sample.txt") ? > のままになっていました。 ? % & などがつくURLでは、インクルードできないということでしょうか? 解決法をご存知の方は、どうかご教授お願いいたします。

    • ベストアンサー
    • PHP
  • 同一phpファイルからのinclude

    ってできるんですか? 例えばindex.phpの16行目辺りの文章をDIVで囲ってtitleつけて、それを同一index.phpファイルの100行目辺りにphp includeでまた表示…外部ファイルにして両方にincludeすればいいんですが、できるのかなぁって。 よろしくお願いします。

    • 締切済み
    • PHP
  • pearライブラリのインクルードについて

    PEARへのパスの通し方の方法を教えていただきたいと思います。 私はハッスルサーバーを使っており、以前に以下のサイトを参考にしてPEARをインストールしました。(PHPのバージョンは5.2です。) http://funweb.sblog.jp/blog/article/%E3%83%8F%E3%83%83%E3%82%B9%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%B8%E3%81%AEPEAR%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB その後、XML-RPCを使用したPHPプログラムを作成し、 以下の場所に配置しました。 <ドキュメントルート配下> ・pear(フォルダ)   ・bin(フォルダ)   ・PEAR(フォルダ)   ・pear.conf   ・phpプログラム ←配置したプログラム ・wp(フォルダ) phpプログラムにはrequire_once("XML/RPC.php"); と記述しているのですが実行すると以下のエラーが出ます Warning: require_once(XML/RPC.php) [function.require-once]: failed to open stream: No such file or directory in /home/xxx/public/www/pear/xxx.php on line 2 Fatal error: require_once() [function.require]: Failed opening required 'XML/RPC.php' (include_path='“.:/home/xxx/public/www/pear/PEAR”') in /home/xxx/public/www/pear/xxx.php on line 2 php.iniのインクルードパスには「 include_path = ".;/home/xxx/public/www/pear/PEAR";」と記述しています。 問題はパスの記述か、XMLフォルダの存在の有無かのどちらかだろうと判断し、 XMLフォルダの存在を確認するためにphpプログラムの方を以下のように フルパスで記述しました。 require_once("/home/xxx/public/www/pear/PEAR/XML/RPC.php"); すると今度は以下のエラーが出ました。 Warning: include_once(PEAR.php) [function.include-once]: failed to open stream: No such file or directory in /home/xxx/public/www/pear/PEAR/XML/RPC.php on line 594 Warning: include_once() [function.include]: Failed opening 'PEAR.php' for inclusion (include_path='.;/home/xxx/public/www/pear/PEAR') in /home/xxx/public/www/pear/PEAR/XML/RPC.php on line 594 Fatal error: Class 'PEAR' not found in /home/xxx/public/www/pear/PEAR/XML/RPC.php on line 596 これでXMLフォルダが存在することは分かったのであとはインクルードパスの問題と判断しました。 しかし、インクルードパスは何度確認しても「/home/xxx/public/www/pear/PEAR」と合っているように思います。 他に心当たりがある方がいらっしゃいましたら教えていただければと思います。 宜しくお願い致します。

    • 締切済み
    • PHP
  • 「複数のPHPファイルを上から順に15秒ごとに読み

    「複数のPHPファイルを上から順に15秒ごとに読み込む」ようなPHPファイルが欲しいです。 それをcronで定期的に実行したいのですが、どうしてもエラーが出てしまい上手く動きません。 <?php ini_set('display_errors', 1); error_reporting(-1); set_time_limit(0); $list = [ 'http://xxx.com/file1.php', 'http://xxx.com/file2.php', 'http://xxx.com/file3.php', 'http://xxx.com/file4.php', 'http://xxx.com/file5.php', 'http://xxx.com/file6.php', 'http://xxx.com/file7.php', 'http://xxx.com/file8.php', 'http://xxx.com/file9.php', 'http://xxx.com/file10.php', ]; foreach ($list as $url) { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, ]); sleep(15); curl_exec($ch); } ?> いちおう初心者ながらに書いてみたのですが、どこが悪いのかを教えてください。

    • 締切済み
    • PHP
  • ホームページ作成について、インクルード化とは何?

    今、作成しているホームページで、先方からの指示で 「全ページの共通箇所に関してはインクルード化しておいてください。」 と言われました。 いつもコーディングをするときはDreamweaverのテンプレート機能?などは使わずに、すべてのページそれぞれのhtmlファイルで作成していたので、“インクルード化”とは何なのか調べてみたところ、 phpで作成する方法(↓)や、.incファイルで作成する方法などいろいろあるようで、どれがベーシックなものなのかわからず、質問させていただきました。 http://seo.k-m-k-m.com/hp/include/ 一般的に“インクルード化”とはどのようにしてするのでしょうか? やり方が書いてあるURLなど教えていただけると幸いです! ご回答をお待ちしております。 よろしくお願いいたしますm(_ _)m

    • ベストアンサー
    • HTML
  • wordpressでincludeが表示されない

    wordpressで投稿した際に、phpのincludeファイルを読み込ませようとしています。 wordpressのサイトを sample.com とした場合、 投稿記事に以下を貼り付けています。 <?php include("http://sample.com/include/link.inc");?> サイトはUTF-8、link.incファイルもUTF-8で保存しています。 試しにsample.comの直下にtestフォルダを作って、その中にhtmlファイルを作って 同様に上記のphpのinclude記述をしたところ、ちゃんと表示されました。 ちなみに別のドメインサイト(HTMLサイト)でも上記の記述で表示されました。 wordpressのサイトで表示されないのは何が原因でしょうか?

    • 締切済み
    • PHP
  • 内部サーバーのファイルをincludeで呼び出せない

    外部サーバーから下記プログラムを実行した場合【正常】 内部サーバーから下記プログラムを実行した場合【エラー】 include("http://***.com/banner.php"); エラー内容 ●php_network_getaddresses: getaddrinfo failed ちなみにallow_url_fopen on になっています。 原因がつかめません…

    • 締切済み
    • PHP

専門家に質問してみよう