相对路径报错原因:文件夹名称或路径含中文。

>>>>>>>>>>>>>>>>>>>温馨提示:内容略长,点击此处直达重点


准备工作:将同名不同内容文件分别放置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】相对路径/绝对路径报错?相关推荐

  1. python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory

    项目场景: python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory 问题描述: #储存调用表格.数据 #调 ...

  2. echarts 路径引用问题报错 net::ERR_ABORTED 404 (Not Found)

    小编刚刚又遇见了一个bug,是关于echarts的路径引用问题 报错信息为: GET http://localhost:11426/UserCenter/dist/echarts.js net::ER ...

  3. 主要针对项目路径发生变化产生 报错:Project SDK is not defined

    在日常java开发的过程中,我们需要对项目文件进行一些管理,例如因为项目路径的变化会出现Project SDK is not defined:报错,Project SDK is not defined ...

  4. 配置@MapperScan路径错误导致报错

    报错原因:多种情况都有可能导致此类报错,例如忘记加@Mapper,@Service等注解,或者Mapper的xml文件配置错误,我的原因是配置了MapperScan扫描路径,但是路径配置错误导致扫描不 ...

  5. graphviz安装正确,也添加了路径,还是报错

    首先要确保graphviz在官网上下载 https://graphviz.org/download/ 如果是windows的话就选第一个Development Windows install pack ...

  6. Python 虚拟环境迁移路径后pip报错解决记录

    为了保持不同项目之间包管理的独立,一般每个项目中都会独用一个虚拟环境venv,venv放在项目根目录下,在项目迁移的时候虚拟环境一般是不敢乱动的,容易报很多莫名其妙的错误,比如:因此,每次移动项目都是 ...

  7. 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\ ...

  8. python win7正常的文件路径到win10报错_如何更改临时文件路径_win10怎么更改临时文件夹的路径图文步骤...

    2015-09-16 17:27:19 最近,有位win10系统用户反映自己电脑中的临时文件夹存放空间已经满了,因此想要更改掉之前的临时文件夹路径.这该如何操作呢?接下来,小编就向大家分享window ...

  9. 新手零基础:飞桨代码中关于图片路径读取和资源解压报错

    #飞桨代码中关于图片路径读取和资源解压报错 1.路径读取 在进行路径图片读取时,不同版本的python的os模块在路径拼接时会报错,一般情况下os.path.join(path,name),是可以将路 ...

  10. Vue 引入路径正确的,但一直报错: Already included file name ‘××ב differs from file name ‘××ב only in casing.

    Vue 引入路径 import ××× from '×××' 报错 引入的文件名和地址都是正确的,但是还是报错误 Already included file name '×××' differs fr ...

最新文章

  1. 行业观察 | 新一轮AI周期里,华为拿什么破解核心难题?
  2. 线性时间排序--桶排
  3. 一篇特别长的总结(C专家编程)
  4. Android測试APP工具(一)
  5. 焊接标注lisp文件下载_压力容器中焊缝的标注与对接,绝对专业
  6. 嵌入式相关的硬件平台
  7. MySQL无法远程连接解决方案
  8. 实现Canvas2D绘图 使元素绕中心居中旋转
  9. python爬虫线上编辑_Python 爬虫入门《中》
  10. 虚拟化查看服务器sn,查看服务器操作系统序列号
  11. 中国移动MM如何成就千亿梦想
  12. idea2017破解教程
  13. nanomsg 高性能通信库_NanoMsg框架|NanoMsg的简介
  14. 编写一个简单加密程序!!!
  15. Cell:PopCOGenT鉴定微生物基因组间的基因流动
  16. 场外期权:一个你从未了解过的金融衍生品市场正在中国悄悄壮大
  17. MeshBaker插件 使用套路
  18. oogle code svn+TortoiseSVN使用方法
  19. POJ 3290 WFF 'N PROOF 英文少
  20. 久违的狮子王,王者归来

热门文章

  1. python实现微信自动回复
  2. 使用Tampermonkey油猴子给浏览器开个挂
  3. 评职称自费出书多少钱
  4. 安卓监听是否有闹钟设置
  5. PS小技巧----证件照换底色
  6. 墨珩科技 | 密码行业标准制定的参与者
  7. 2.4g和5g要不要合并_路由器2.4g和5g双频合一好还是分开好
  8. U盘PE启动盘制作好后,如何进入PE系统?
  9. 常见Git分支使用方式
  10. html表格中如何画单元格中对角线