0

win2008/IIS7 サーバーで作業すると、この php include ステートメントは有効でした:

include('/path/file.php');

共有 Linux CPanel サーバーに移行すると、そうではありません。代わりにこれを行う必要があります:

include('path/file.php');

私が最初にコードを書いたとき、/最初のファイルがアクセスされているルート フォルダーから開くことを意味するという印象を受けました。これは.iniファイルで設定できるものですか? PHPバージョン固有ですか?

4

3 に答える 3

1

無効であるというエラーが表示される場合はfile cannot be found、PHP が php.ini の include_path 構成に基づいてファイルの検索を決定するためです。

詳しくはhttp://www.php.net/manual/en/ini.core.php#ini.include-pathで読むことができます 。

実際には/、ディレクトリセパレーターとしても信頼できません。DIRECTORY_SEPARATOR定数を使用する必要があります。

これに対処するには、include_path を次のように変更する必要があります。

Unix

include_path=".:/path"

ウィンドウズ

include_path=".;c:\path"

コードを書き直し、

include('file.php');
于 2013-11-05T06:29:03.630 に答える
1

IISの最初/のものは、ドメイン/ローカルホストのルート フォルダーを参照します。たとえば、次のようにブラウザーでページにアクセスできます。http://localhost/path/file.php

2 番目の形式は/、URL が file.php を含むページのフォルダーからの相対パスであることを意味せず、サブフォルダー パスに移動し、そこでファイルを見つけます。

フォルダー構造はマシン間で異なると思います.UNIXマシンでは、次の場所に展開されています。http://www.youdomain.com/somefolder/HERE

于 2013-11-05T06:14:34.033 に答える
0

ディレクトリは、include または require 呼び出しを行う *.php ファイルに相対的になります。

上記の場合、「path/file.php」の場合。「path/file.php」のインクルードがあるファイル(index.phpとしましょう)を想定しています。ファイルは「path」と同じディレクトリにある必要があります。

于 2013-11-05T06:14:13.463 に答える