注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

长白枩博客欢迎你

http://zsbai1001.blog.163.com

 
 
 

日志

 
 

php中使用绝对路径和相对路径  

2014-05-14 09:32:02|  分类: 网站知识 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |


 
php中使用绝对路径和相对路径 - 长白枩 -             长白枩博客欢迎你

   

php中使用绝对路径和相对路径


    下面看两段代码:
    代码一:相对地址访问
[php] 
<meta http-equiv="Content-Type"content="text/html;charset=GBK"> 
<?php  
    echo $_SERVER['DOCUMENT_ROOT']; 
?> 
    <img src="../1.jpg" /> 
    代码二:绝对地址访问
[php]
<meta http-equiv="Content-Type"content="text/html;charset=GBK"> 
<?php  
    echo $_SERVER['DOCUMENT_ROOT']; 
?> 
   <img src="C:/Program Files/Zend/Apache2/htdocs/1.jpg" /> 
 先把这两个放一下,让我们来讲纯的html代码(ps:现在是测试,那么我就写的简略点,但是能得出结果)
代码一:相对地址 (test_image_1.html)
[html] 
<img src="../1.jpg" /> 
 代码二:绝对地址 (test_image_2.html)
[html] view plaincopy
<img src="C:/Program Files/Zend/Apache2/htdocs/1.jpg" /> 
(ps:图片目录:C:/Program Files/Zend/Apache2/htdocs/1.jpg
 html目录:C:/Program Files/Zend/Apache2/htdocs/test_image/)
备注:本机上安装了appache,是Zend的融合包中的。
 两种方式,第一种是直接双击打开文件,test_image_1和test_image_2都是可以打开的,URL中显示的是C:/Program Files/Zend/Apache2/htdocs/test_image/test_image_1,这样图片都是可以显示的。
 第二种方式,通过appache访问,使用URL:127.0.0.1/test_image/test_image_1访问,结果是使用相对路径的可以正常实现,绝对路径的不能显示。 
 查了很多资料,终于可以得出结论了。直接打开html文件,因为在你的计算机下,那么绝对路径就可以轻松的访问。但是通过WEB访问,那么WEB默认的根目录是htdocs/,在你计算机中,这个目录是C:/Program Files/Zend/Apache2/htdocs/但是WEB不怎么认为,在它的认识里面不知道有c:这玩意儿。所以你认为的绝对路径,是在你计算机里面的绝对路径,但是通过WEB不认识这个路径。
 正确的方式应该是如下两代码:
 代码一:相对地址 (test_image_1.html)
[html] 
<img src="../1.jpg" /> 
 相对路径完全没问题。    所以一般都是建议使用相对路径便于移植。
代码二:绝对地址 (test_image_2.html)
[html] view plaincopy
<img src=/1.jpg" /> 
 这里的跟目录是/所以这样才是绝对路径。
 如果你的图片,换了个位置,在你计算机绝对路径下是C:/Program Files/Zend/Apache2/htdocs/111/222/333/1.jpg
 那么代码就应该写成:
[html] 
<img src=/111/222/333/1.jpg" /> 
综上所诉,不要把计算机的绝对路径和WEB服务器的绝对路径搞混了。
经过上面的讲解,应该理解html方式的绝对路径和相对路径了。
那么让我们来看看文章开头给出的PHP的形式。
代码一:相对地址访问 test_image_1.php
[php]
<meta http-equiv="Content-Type"content="text/html;charset=GBK"> 
<?php  
    echo $_SERVER['DOCUMENT_ROOT']; 
?> 
    <img src="../1.jpg" /> 
    代码二:绝对地址访问 test_image_2.php
[php] view plaincopy
<meta http-equiv="Content-Type"content="text/html;charset=GBK">  
<?php  
    echo $_SERVER['DOCUMENT_ROOT']; 
?> 
       <img src="C:/Program Files/Zend/Apache2/htdocs/1.jpg" /> 
        首先要理解PHP的执行方式,当你访问一个PHP的时候,会触发此PHP运行,PHP经过appache解析后(言外之意,就是说php已经运行完了,显示了些结果),生成了一下HTML代码,也就是简单的说,到你手上的php,其实就可html一样。php是在服务器端运行完毕然后再送到你的手里的。所以刚开始我也没完全理解,用php做一些动作,比如提交表格什么的,其实不是php的事了,而是html的动作。到你手里的,能显示的,是披着.php后缀的,html代码。
在说说在PHP眼里的绝对地址,当然,php认识你计算机的绝对路径了,比如你要用php打开一个文件,用php读取本机上一个图片的大小,分辨率什么的,完全可以使用绝对路径(相对路径更没有问题)。
         但是PHP执行完后,将会把结果在你的网页端显示,那么比如:
[php] 
<img src="C:/Program Files/Zend/Apache2/htdocs/1.jpg" /> 
        这代码,虽然写在PHP文件当中,但是他只是HMTL代码,因此此时就不光PHP的事了,而是html上马了,而HTML和WEB有关,WEB不认识你这个路径了(原因上面已经讲了)。所以现在是WEB不认识计算机的绝对路径,而不是你的PHP不认识。   
在提一点,WEB的根目录是/但是,你的图片在它认为的根目录上一级,也是可以访问的,代码如下:
[html] 
img src="../../1.jpg" /> 
(原先1.jpg在跟目录下,而html代码放在/image_test/下,所以要../1.jpg,才能访问,
而现在1.jpg在根目录上一级,那么我们就再回退一级就可以访问到了,../../1.jpg)




  评论这张
 
阅读(20)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018