1

私は今、本当に混乱していて、私の脳が痛いです!:( 笑

根:

  • index.php

内容:

  • cat.php
  • dog.php

インデックスには犬が含まれます: include("includes/dog.php");

犬には猫が含まれます: include("cat.php");

index を実行すると、 cat の場合、次のように表示されます。

  1. サーバーへのリンクを確立できませんでした
  2. ユーザーのアクセスが拒否されました...

しかし、犬を走らせれば問題ない...

私はそのパスを推測していますが、私は ./includes/cat.php を試してみました...

4

4 に答える 4

5

これは、相対パスを含めると、エントリ ポイント (Web サーバーによって呼び出される最初の PHP ファイル) からの相対パスになるためです。

犬で、する

include(dirname(__FILE__) . '/cat.php'); // __FILE__ is always the name of the php file it's in
于 2010-06-12T13:30:37.717 に答える
1

これを解決する別の方法は、ファイルのインクルードパスを設定することです。これを見てください。

http://ve2.php.net/manual/en/function.set-include-path.php

于 2010-09-28T15:55:16.420 に答える
1

実行しているスクリプトがどこにあるかによって異なります。/index.phpに設定されたスクリプトのパスを実行すると/、そこからすべてのインクルードが開始されます。これは、 を見つけることはできますが、を見つけることができないことを意味します。スクリプトからインクルードしている場合でも、元の実行パスは変更されないことに注意してください。/includes/dog.php/cats.phpcats.php/includes/dog.php

一方、 を実行しているときは/includes/dog.php、パスが に設定され/includes/ます。これが、PHP が も検出できる理由cats.phpです。

これを解決する方法についての Bart のコメントを読んでください。

于 2010-06-12T13:38:33.313 に答える
0

この素敵なスレッドをありがとう。

この問題を解決するためにバートの答えを使用しました。しかし、ここでまだ1つ疑問があります。

使用しなくても仲間のシステムで機能することに驚いた dirname(__FILE__)ので、ほとんど調査せず、両方の php.ini ファイルを比較しました。include_pathphp.ini のパラメータにほとんど違いがないことに気付きました。

私のphp.iniでは、Pearディレクトリに設定されています。だから私はテストするためだけにコメントアウトしましたが、それがうまくいったのは不思議です。これは、デフォルト値を取得するために、知らないフォルダーを含めるかコメントアウトする必要があることに気付いたときです。

于 2011-12-30T07:55:49.600 に答える