3

PHPスクリプトに動的にインクルードを作成しようとしています。これは私のディレクトリツリーです:

-index.php
-sources/
--hello.php
--bye.php

私のindex.php中で私はhello.phpをインクルードします:

include("sources/hello.php");

私のhello.php中には別のものがあります:

include("bye.php");

アクセスするindex.phpと、次のようなエラーがスローされます。

メッセージ:require_once(bye.php)[function.require-once]:ストリームを開くことができませんでした:そのようなファイルまたはディレクトリはありません

それを機能させる方法はありますが、絶対パスはありませんか?パスはディレクトリ間で変更可能ですが、構造は維持されるためです。

-index.php
-sources/
--hello.php
--bye.php
4

3 に答える 3

3

使用する

dirname(__FILE__);

このような

include(dirname(__FILE__)."/bye.php");
于 2012-10-17T03:11:27.410 に答える
1

getcwd()を使用してみませんか?

内容index.php

include(getcwd() . "/sources/hello.php");

内容hello.php

include(getcwd() . "/sources/bye.php");
于 2012-10-17T03:10:48.947 に答える
0

「hello.php」は「index.php」に含まれているため、「bye.php」は「index.php」から含まれているかのように「hello.php」に含める必要があります。このような:

include("sources/hello.php");

ただし、「index.php」ディレクトリだけでなく、あらゆる場所に「hello.php」を含めたい場合は、毎回正しいパスを提供する変数を「hello.php」に設定できます。このような:

$webroot = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/";
include($webroot."sources/bye.php");

OUTPUT -->http://website.com/sources/bye.php
于 2012-10-17T03:19:45.720 に答える