0

私がそのようなフォルダ構造を持っているとしましょう:

C:\xampp\htdocs\MyProject
                    |-- Lib
                    |    |-- dbconn.php
                    |-- SuperSite
                    |    |-- index.php
                    |    |-- misc
                    |          |-- misc.php

index.php には次のような行があります。

require("../Lib/dbconn.php");

これは、Web サーバーから index.php にアクセスする場合は機能しますが、コマンド ラインから index.php を実行すると、require() は失敗します。

C:\>php C:\xampp\htdocs\MyProject\SuperSite\index.php
Warning: include(../Lib/dbconn.php): failed to open stream: No such file or directory in C:\xampp\htdocs\MyProject\SuperSite\index.php

ただし、パスの前に「/」を追加しても失敗しません。

require("/../Lib/dbconn.php");

次のような他のファイルが必要な場合も失敗しません。

require("misc/misc.php");

また

require("/misc/misc.php");

コマンド ラインからスクリプトを実行するときに、「..」で始まるパスの前に「/」が必要なのはなぜですか?

(Web サーバーからアクセスする場合 (ブラウザを使用) は、先頭に「/」が付いているパスと付いていないパスが機能します)

4

1 に答える 1

0

このページが役に立ちます!;)

于 2013-08-19T12:23:59.150 に答える