。
dirname(__FILE__)
和__DIR__
都相同,__DIR__
自帶PHP 5.3
這些用於表示「他們調用的文件的路徑」。
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.php定義它,也就是您要的文件名使用的是將包括在內。
./
config.php
index.php
header.php
footer.php
/lib
foo.php
/tmp
bar.php
./config.php define('ROOT', __DIR__ .'/');
./index.php include_once(ROOT .'header.php'); ... include_once(ROOT .'footer.php');
即,在tmp dir
./tmp/bar使用它。PHP include_once(ROOT .'lib/foo.php');
UPDATE
// 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到你需要它的地方。
我想,這是基本的需要儘可能...
UPDATE
所以你的問題是不是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">
您在使用任何框架或項目的原始PHP? – 2012-08-09 12:06:05