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”需要被包含在“hello.php”中,就好像它被包含在“index.php”中一样。像这样:

include("sources/hello.php");

但是,如果您想在所有地方都包含“hello.php”,而不仅仅是在“index.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 回答