绝对路径实际上严格区分,分为站点绝对路径和系统绝对路径。
在linux当中,系统绝对路径的展现形式等价于站点绝对路径。都是/ 开头
但需要注意,系统绝对路径是linux特有的系统根目录/为根目录的,比如包括/root /home等
但站点的绝对路径实际上是nginx划分的站点目录作为根目录的。比如在网页源代码中使用 /1.js,只能访问域名对应所在根目录的www.xxx.com/1.js
所以在php操作文件时,需要理解站点绝对路径和系统绝对路径的区别。当然php内置函数和魔术常量可以很好的区分出系统绝对路径,
比如__DIR__获取的就是当前php脚本所在的系统绝对路径,diarname(__FILE__);也同样可以拿到系统绝对路径。
但很多开发者喜欢写死路径字符串,比如file_get_contens('/upload/1.txt');这样的方法实际上是错误的。这样的写法将会访问linux系统根目录的 /1.txt,而不是站点所在目录的/1.txt;并且由于php-fpm进程也会受制于nginx划分的站点目录权限,即使存在该文件也无法读取。
而在window系统中,系统绝对路径和站点绝对路径的展现形式就不一样了。
系统绝对路径是以盘符开头的,比如D:\\1.txt;
而站点绝对路径同样是web服务器引擎软件划分的站点根目录为起点,所以网页源代码中使用 /1.js,只能访问域名对应所在根目录的www.xxx.com/1.js
而相对路径,就是以脚本所在目录为基准,相对于代码脚本所在目录位置上下查找对应的资源。相对路径下是不区分系统平台的。但是却存在不可靠的情况,比如在多个incode载入的php脚本中,实际上写在被载入脚本的相对路径已经变成了主动载入其他脚本的当前脚本为基准。相对路径可以是./1.js或者是1.js等,上级访问只能是../../../1.js,而不是........./1.js
但通过上面的例子可以发现,在php操作文件时,尽量采用内置函数获取系统绝对路径,可以有效防止系统环境变动产生不兼容的情况。
热议
推荐楼 买鸡吃灰 2小时前
真把论坛当你垃圾留言站了吗
推荐楼 超级无敌小马甲 2小时前
学习了。还是蛮有用的
总比水贴好
LOC里不是每个都是编程大佬,所有知识学习是不错的
2楼 hjh 2小时前
loc记事本
3楼 403_Forbidden 2小时前
????????这是什么啊
5楼 minlearnhbs 2小时前
loc记事本
6楼 电脑 2小时前
精神分裂的前兆
7楼 LikeOracle 2小时前
不明觉厉
9楼 kaleok 2小时前
学习了。还是蛮有用的
总比水贴好
LOC里不是每个都是编程大佬,所有知识学习是不错的 ...
这就是我拿hostloc当日记本的意义所在。
10楼 refrigerator 2小时前
搁这儿记笔记?
12楼 tian1781 2小时前
搞个博客写多好,没准还能有点流量
13楼 kaleok 2小时前
真把论坛当你垃圾留言站了吗
你认为是垃圾留言,有其他人认为是有用的资料,怎么办?你不爽么?来互喷呀
14楼 dsg0809 2小时前
真搞不懂你发这些干嘛,真想了解的人也不会拿你这不算通顺的文章当资料吧。
15楼 kaleok 2小时前
真搞不懂你发这些干嘛,真想了解的人也不会拿你这不算通顺的文章当资料吧。 ...
也许是论坛定位问题,以后不发了,看不懂可以理解,不通顺就不必强行解释了。根本不是一类人,大多数不是程序员,我自己定位论坛有偏差而已。以后不发了
16楼 买鸡吃灰 1小时前
你认为是垃圾留言,有其他人认为是有用的资料,怎么办?你不爽么?来互喷呀 ...
谁认为有用?看你这口水话讲半天,绝对路径相对路径两句话的事情能水一大篇可见你技术不行倒是挺爱装的,另外别以为字写得多就能让人更容易理解,字多反而会把别人绕进你的思路把别人带歪
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。
