把绝对路径转换为html里的相对路径?

warchief3000 2010-07-03 08:19:01
假如,我的服务器上有一张图片,它的绝对路径是 "c:/xampp/htdocs/project/upload/img/welcome.jpg"
然后,我有一个php页面 "c:/xampp/htdocs/project/index.php"。
我想在这页面里显示那张图片,我就需要把

"c:/xampp/htdocs/project/upload/img/welcome.jpg" 转换为 "upload/img/welcome.jpg"
如 <img src="upload/img/welcome.jpg"> 显示在页面上。

但是,如果我想在 "c:/xampp/htdocs/project/sub/a/index.php" 里显示的话:
<img src="../../upload/img/welcome.jpg">

php有什么内置function可以实现这装换吗?

另外,自己写一个,应该也是可以的,用$_SERVER['PHP_SELF']的话。

...全文
173 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
amani11 2010-07-03
你总有个入口文件,或者公共包含的文件,比如常用config.php保存数据库的账户信息

那就假设config.php在根目录下的data文件里

str_replace('/data/config.php', '', str_replace('\\', '/', __FILE__);
//一般来说这样就可以了

其他文件,只要包含这个文件,就得到了网站根目录
回复
amani11 2010-07-03
你可以去看看新浪乐居的面试题之一

http://topic.csdn.net/u/20100623/04/72f6d6d3-9fa0-407b-99bd-8e5fb3bf8abd.html

这里关于相对目录的讨论

你可以把问题变得比较复杂。数据是你的,当然在可控制的范围内,效率最高,最简单实现是比较优的方案
回复
warchief3000 2010-07-03
[Quote=引用 3 楼 amani11 的回复:]

把图片显示出来,就是解决问题,

说了是简单点的方式,不知道你试过没

不是谁都有心情灌水的
[/Quote]

如果php不在根目录,该怎么办呢?
回复
amani11 2010-07-03
把图片显示出来,就是解决问题,

说了是简单点的方式,不知道你试过没

不是谁都有心情灌水的
回复
warchief3000 2010-07-03
[Quote=引用 1 楼 amani11 的回复:]

简单点的,定义网站根目录 比如 define("ROOT_PATH", "c:/xampp/htdocs");

引用图片只要将 str_replace(ROOT_PATH, '', $imgPath);


当然,写个脚本,将数据库全部替换掉也不错
[/Quote]

这根本没有在解决我的问题嘛!
回复
amani11 2010-07-03
简单点的,定义网站根目录 比如 define("ROOT_PATH", "c:/xampp/htdocs");

引用图片只要将 str_replace(ROOT_PATH, '', $imgPath);


当然,写个脚本,将数据库全部替换掉也不错
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告