dirname(__FILE__)
两者相同,并附带PHP 5.3__DIR__
__DIR__
这些用于指示“它们调用的文件的路径”。
URL: http://localhost/test/a.php
DIR: --NIX
/var/www/test/a.php
--WIN
D:\lamp\www\test\a.php
// a.php's inside
<?php
echo __DIR__;
在 linux 上给你这个:/var/www/test
因此,如果您在所有项目中都需要一个config参数,只需在config中定义它.php并在您希望包含的文件名的地方使用它。
./
config.php
index.php
header.php
footer.php
/lib
foo.php
/tmp
bar.php
./配置.phpdefine('ROOT', __DIR__ .'/');
./索引.phpinclude_once(ROOT .'header.php'); ... include_once(ROOT .'footer.php');
即,将其用于tmp dir
./吨/巴.phpinclude_once(ROOT .'lib/foo.php');
更新
// config.php
<?php
define("ROOT", __DIR__ ."/");
因此,我们用它来包含并正在等待index.php
banner.php
banner.php
./banners/banner.php
;
// index.php and the very first line!
<?php
include_once("config.php");
?>
// some html stuff
// ...
<?php include_once(ROOT ."banners/banner.php"); ?>
// some more html stuff
// ...
因此,您应该首先将config.php到您需要它的地方。
我认为,这是必要的基本要求...
更新
所以你的问题不是PHP系统,而是问题,无论如何......:)include
如果你的图像路径正在改变(所以不是固定的),你可以这样做;
// config.php
define("ROOT", __DIR__ ."/");
define("HTTP", ($_SERVER["SERVER_NAME"] == "localhost")
? "http://localhost/your_work_folder/"
: "http://your_site_name.com/"
);
// banner.php
<img src="<?php print HTTP; ?>images/banner.gif">