我正在尝试在我的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
答案 0 :(得分:3)
使用
dirname(__FILE__);
像这样
include(dirname(__FILE__)."/bye.php");
答案 1 :(得分:1)
为什么不使用 getcwd() ?
index.php
的内容:
include(getcwd() . "/sources/hello.php");
hello.php
的内容:
include(getcwd() . "/sources/bye.php");
答案 2 :(得分: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