。
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