假如,我的服务器上有一张图片,它的绝对路径是 "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']的话。

解决方案 »

  1.   

    简单点的,定义网站根目录 比如 define("ROOT_PATH", "c:/xampp/htdocs");引用图片只要将 str_replace(ROOT_PATH, '', $imgPath);
    当然,写个脚本,将数据库全部替换掉也不错
      

  2.   


    如果php不在根目录,该怎么办呢?
      

  3.   

    你可以去看看新浪乐居的面试题之一http://topic.csdn.net/u/20100623/04/72f6d6d3-9fa0-407b-99bd-8e5fb3bf8abd.html这里关于相对目录的讨论你可以把问题变得比较复杂。数据是你的,当然在可控制的范围内,效率最高,最简单实现是比较优的方案
      

  4.   

    你总有个入口文件,或者公共包含的文件,比如常用config.php保存数据库的账户信息那就假设config.php在根目录下的data文件里str_replace('/data/config.php', '', str_replace('\\', '/', __FILE__);
    //一般来说这样就可以了其他文件,只要包含这个文件,就得到了网站根目录