thinkphp5.1文件路径使用绝对路径

先说说写这篇文章的由来。

需求:执行方法调用指定位置的excel文件并读取其中的内容。

报错:errStr:fopen(../public/excel.csv): failed to open stream: No such file or directory;

从错误中可以看出为文件路径的异常,但奇怪的是如果单独执行调用文件的方法,并不会报错。但如果将方法使用定时器调用就会出现该错误。关于这个错误,真的想说极为不解。

既然知道了错误,那么开始来解决。既然相对路径不行,那么改成绝对路径来读取呢?

这里就用到了dirname(__FILE__)来实现最终的绝对路径。

dirname(__FILE__)含义返回的是脚本所在在的路径。即返回你当前方法所在的绝对位置路径。

如:我在admin/controll/index.php中进行了调用。

返回结果:

D:\项目名称\application\admin\controller

从该方法我们知道了,调用时的的绝对路径。那么你指定的文件在public下的test/a.csv文件的绝对要如何写呢?

dirname(__FILE__).'/../../../public/test/a.csv'

如此便获得了,该文件的绝对路径。

常规相对路径如下:

'../public/test/a.csv'

相对路径和绝对路径需要根据自己实际情况使用。

     

六月初字帖坊小程序 你想要的字帖模板及工具,这里都有!