【php】相对路径/绝对路径报错?
相对路径报错原因:文件夹名称或路径含中文。
>>>>>>>>>>>>>>>>>>>温馨提示:内容略长,点击此处直达重点
准备工作:将同名不同内容文件分别放置demo目录和环境目录
文章目录
- 一、先来看看几种用来操作文件的函数的情况(同级目录,即相对路径下)
- 1.require 调用同级文件,毫无压力
- 2.file() 只要父级文件夹是中文就会获取到环境目录下的同名文件,而非同级的。
- 3.file_get_contents() 跟 file() 是一样的情况
- 4.file_exists() ,我先把环境目录下的同名文件删了,这样它获取到的就是0个了,不信请看
- 二、再说个我昨天的新鲜例子(文件上传功能)
- 1.首先测试当父级英文名时,通过相对路径保存到当前目录(真香)
- a)当前目录的相对路径为: ./
- b)上传一张图片,不用说,成功保存
- 2.不改变代码,修改父级文件夹名称为中文,会出现什么情况
- a)首先,到环境目录下搜索关键词,以证明开始并不存在该图
- b)再到编辑器,将父文件夹名称修改为中文,操作上传图片,发现成功保存,但目录下并不存在
- c)来到环境目录,重新搜索,发现,被保存在这里
- 3. 无论是 '文件名.后缀' 还是 './' ,都是指代当前目录(路径或文件),如果父级中文名,它并不会报错,而是指向环境目录。但如果脱离了当前目录,它就直接各种报错了
- 4.换成绝对路径,成功访问
- 5.没错,绝对路径确实可以解决上面的问题,但是,img的src,并不支持绝对路径!
- a)使用绝对路径来一次,报错
- b)换成相对路径再来一次
- 6.那问题就来了呀!路径不想修改成英文名,保存无法用相对路径,只能用绝对路径;图片读取不能用绝对路径,只能用相对路径,这么矛盾,到底怎么解决,难道只能用英文了?
- 三、你所不知道的路径用法,绝对中的相对路径
- 1.首先定义一个指向当前脚本的【绝对路径】
- 2.然后再定义一个从当前脚本到目标文件的【相对路径】
- 3.需要谁就用谁,还可以互相搭配
- PS:保存到数据库的路径,是需要包含图片名的
一、先来看看几种用来操作文件的函数的情况(同级目录,即相对路径下)
1.require 调用同级文件,毫无压力
2.file() 只要父级文件夹是中文就会获取到环境目录下的同名文件,而非同级的。
3.file_get_contents() 跟 file() 是一样的情况
4.file_exists() ,我先把环境目录下的同名文件删了,这样它获取到的就是0个了,不信请看
还有 move_uploaded_file() 等也是如此,只要你外部磁盘直到到你的php脚本的路径有中文,那你用相对路径去移动文件,就会把文件移动到php环境目录下,目标目录,却空空如也。
Q:那,难道就没有解决的办法了么?
A:有,文件夹用英文命名,路径用起来就不会各种报错了。
Q:可,有些文件下安装好软件了,改名会影响运行;而且,英文看起来麻烦,中文就很清晰,能有让中文路径也能访问的方法吗?
A:有,使用绝对路径。
Q:绝对路径好是好,访问中文路径没阻碍,可是,有些地方用绝对路径也会提示错误,而且,中文更可读,一堆鸡肠不习惯,还有更好的办法么?
A:有的,经本人测试,发现了一种更可行解决方法。你所不知道的路径方法,解决 move_uploaded_file() 等各种路径访问操作。
二、再说个我昨天的新鲜例子(文件上传功能)
1.首先测试当父级英文名时,通过相对路径保存到当前目录(真香)
a)当前目录的相对路径为: ./
b)上传一张图片,不用说,成功保存
2.不改变代码,修改父级文件夹名称为中文,会出现什么情况
a)首先,到环境目录下搜索关键词,以证明开始并不存在该图
b)再到编辑器,将父文件夹名称修改为中文,操作上传图片,发现成功保存,但目录下并不存在
c)来到环境目录,重新搜索,发现,被保存在这里
3. 无论是 ‘文件名.后缀’ 还是 ‘./’ ,都是指代当前目录(路径或文件),如果父级中文名,它并不会报错,而是指向环境目录。但如果脱离了当前目录,它就直接各种报错了
4.换成绝对路径,成功访问
5.没错,绝对路径确实可以解决上面的问题,但是,img的src,并不支持绝对路径!
a)使用绝对路径来一次,报错
b)换成相对路径再来一次
6.那问题就来了呀!路径不想修改成英文名,保存无法用相对路径,只能用绝对路径;图片读取不能用绝对路径,只能用相对路径,这么矛盾,到底怎么解决,难道只能用英文了?
三、你所不知道的路径用法,绝对中的相对路径
【当初在慕课看过张旭鑫大佬讲解position定位之绝对定位中的相对定位的方法(思维),然后就想在这里尝试这种方法,发现居然可行且好用】
1.首先定义一个指向当前脚本的【绝对路径】
$abUrl = '从磁盘卷标出发,指向当前脚本的绝对路径';
2.然后再定义一个从当前脚本到目标文件的【相对路径】
$reUrl = '从当前脚本出发,指向目标文件的相对路径';
3.需要谁就用谁,还可以互相搭配
- 检测当前目录文件是否存在,绝对相对一起用
- 移动文件保存到目录,绝对相对一起用
- 存储进数据库的url,就用相对路径(只要你的读取图片脚本跟当前脚本同在一个目录下,就没问题的)
- 显示文件保存到哪里,随意,爱用谁用谁,两个一起也没啥
PS:保存到数据库的路径,是需要包含图片名的
返回顶部,再来一遍
【php】相对路径/绝对路径报错?相关推荐
- python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory
项目场景: python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory 问题描述: #储存调用表格.数据 #调 ...
- echarts 路径引用问题报错 net::ERR_ABORTED 404 (Not Found)
小编刚刚又遇见了一个bug,是关于echarts的路径引用问题 报错信息为: GET http://localhost:11426/UserCenter/dist/echarts.js net::ER ...
- 主要针对项目路径发生变化产生 报错:Project SDK is not defined
在日常java开发的过程中,我们需要对项目文件进行一些管理,例如因为项目路径的变化会出现Project SDK is not defined:报错,Project SDK is not defined ...
- 配置@MapperScan路径错误导致报错
报错原因:多种情况都有可能导致此类报错,例如忘记加@Mapper,@Service等注解,或者Mapper的xml文件配置错误,我的原因是配置了MapperScan扫描路径,但是路径配置错误导致扫描不 ...
- graphviz安装正确,也添加了路径,还是报错
首先要确保graphviz在官网上下载 https://graphviz.org/download/ 如果是windows的话就选第一个Development Windows install pack ...
- Python 虚拟环境迁移路径后pip报错解决记录
为了保持不同项目之间包管理的独立,一般每个项目中都会独用一个虚拟环境venv,venv放在项目根目录下,在项目迁移的时候虚拟环境一般是不敢乱动的,容易报很多莫名其妙的错误,比如:因此,每次移动项目都是 ...
- java获取mavenlib路径,maven install报错致命错误: 在类路径或引导类路径中找不到程序包 java.lang | ZPY博客...
[类文件的搜索路径: C:\Program Files\Java\jdk1.8.0_181\jre\lib\rt.jar:C:\Program Files\Java\jdk1.8.0_181\jre\ ...
- python win7正常的文件路径到win10报错_如何更改临时文件路径_win10怎么更改临时文件夹的路径图文步骤...
2015-09-16 17:27:19 最近,有位win10系统用户反映自己电脑中的临时文件夹存放空间已经满了,因此想要更改掉之前的临时文件夹路径.这该如何操作呢?接下来,小编就向大家分享window ...
- 新手零基础:飞桨代码中关于图片路径读取和资源解压报错
#飞桨代码中关于图片路径读取和资源解压报错 1.路径读取 在进行路径图片读取时,不同版本的python的os模块在路径拼接时会报错,一般情况下os.path.join(path,name),是可以将路 ...
- Vue 引入路径正确的,但一直报错: Already included file name ‘××ב differs from file name ‘××ב only in casing.
Vue 引入路径 import ××× from '×××' 报错 引入的文件名和地址都是正确的,但是还是报错误 Already included file name '×××' differs fr ...
最新文章
- 行业观察 | 新一轮AI周期里,华为拿什么破解核心难题?
- 线性时间排序--桶排
- 一篇特别长的总结(C专家编程)
- Android測试APP工具(一)
- 焊接标注lisp文件下载_压力容器中焊缝的标注与对接,绝对专业
- 嵌入式相关的硬件平台
- MySQL无法远程连接解决方案
- 实现Canvas2D绘图 使元素绕中心居中旋转
- python爬虫线上编辑_Python 爬虫入门《中》
- 虚拟化查看服务器sn,查看服务器操作系统序列号
- 中国移动MM如何成就千亿梦想
- idea2017破解教程
- nanomsg 高性能通信库_NanoMsg框架|NanoMsg的简介
- 编写一个简单加密程序!!!
- Cell:PopCOGenT鉴定微生物基因组间的基因流动
- 场外期权:一个你从未了解过的金融衍生品市场正在中国悄悄壮大
- MeshBaker插件 使用套路
- oogle code svn+TortoiseSVN使用方法
- POJ 3290 WFF 'N PROOF 英文少
- 久违的狮子王,王者归来