我用php做了一个小网站,但是做着做着发现了一个令人头痛的问题,那就是不同目录调用同一文件的问题 比如根目录下有a.php文件,a.php文件中插入了一张图片b.jpg,图片地址为根目录下的images文件夹,我在根目录下创建一个c.php文件,然后在c.php文件中include("a.php"),这样可以正确调用,然后我在根目录下new文件夹中的创建了一个addnew.php,在addnew.php中include("../a.php"),这时会发现图片b.jpg无法显示,因为路径出现了错误,因为同样调用css文件等都会出现这样的情况,很令人头痛,恳请高手帮忙解决一下这个问题,百分相赠

解决方案 »

  1.   

    图片引用,用这样的方式比如 网站根目录/images/img.png<img src="/images/img.png">……哪里都能显示
      

  2.   

    例如:
    define('ROOT_PATH', str_replace('\\','/',str_replace('insert.php','',__FILE__)));
    在入口文件中定义(后者配置文件中),以后ROOT_PATH就代表固定的路径了,你只需要ROOT_PATH.'一个路径'来形成一个完整的路径就行了
      

  3.   

    网站中存在着两种路径
    一种是 http 路径,他的根就是网站所在目录
    对于图片、视频、css等文件,一般建议使用绝对路径
    比如 <img src="/images/img.png">
    不过这样在离线编辑和调试html文件或模板时,会带来显示问题
    最好能做到只向下调用,这就是网站布局的问题了还有一种是 文件系统的路径,一般建议使用相对路径。
    可将嵌入文件的路径加入到 include_path 中
    同样也是,最好能做到只向下调用
      

  4.   

    用绝对路径+相对include(dirname(__FILE__).'/../abc.php');
    这个最好用。
    可以简化一下,把 dirname(__FILE__) 给定个变量,直接用。
      

  5.   

    define('ROOT_PATH', str_replace('\\','/',str_replace('user.php','',__FILE__)));
    echo ROOT_PATH;
      

  6.   

    用dirname(__FILE__)找到文件所在路径,然后再根据所在文件夹写相对路径,绝对错不了!