首页 >后端开发 >php教程 >同级目录下文件获取失败

同级目录下文件获取失败

WBOY
WBOY原创
2016-06-23 14:39:031013浏览

$files = '131204-5.csv';$str  = file_get_contents($files) or die("文件打开失败");


Warning: file_get_contents(131204-5.csv) [function.file-get-contents]: failed to open stream: No such file or directory in D:\...
文件打开失败

在本机同环境下建的文件可读,放到服务器上却无法执行,对应的磁盘也设置了everyone权限。
请问是什么原因?


回复讨论(解决方案)

$files = './131204-5.csv';

最好把错误信息贴全了,以便于分析问题

楼主好,我试验了你的代码

$files = 'new.txt';$str  = file_get_contents($files) or die("文件打开失败");

没有错误信息提示,
下一步我将文件名故意写错,报错和你一样:
Warning: file_get_contents(new.txt.1): failed to open stream: No such file or directory in C:\xampp\htdocs\a\mark.php on line 9
文件打开失败

楼主在检查一下环境吧。

$files = './131204-5.csv';

最好把错误信息贴全了,以便于分析问题

同目录好像是没问题了,如果是*.php和a文件夹是在同一目录,a文件夹的结构是a/b/c.csv,其中a,b为文件夹,现在*.php访问c.csv文件,相对路径是不是 $path = 'a/b/c.csv'?

下面的代码报错:
$files = 'a/b/131204-5.csv';
echo file_get_contents($files);

error:Warning: file_get_contents(a/b/131204-5.csv) [function.file-get-contents]: failed to open stream: No such file or directory in D:\Label_Barcode\CvtBarcodeSystem\new\onstore\sgm_tsm_upload.php on line 17

是的,是 $path = 'a/b/c.csv'
不过在有些环境(有些php版本下)中需添加当前目录 ./
所以写作 $path = './a/b/c.csv'; 比较稳妥

是的,是 $path = 'a/b/c.csv'
不过在有些环境(有些php版本下)中需添加当前目录 ./
所以写作 $path = './a/b/c.csv'; 比较稳妥

我测试了下,只有文件名不含中文时才能读出来。有没有办法读含中文的文件名?

服务器环境是英文的。

utf-8 的程序运行在 gbk 环境中
或是
gbk 的程序运行在 utf-8 环境中
都会出现无法识别中文文件名的情况
一定要用中文文件名,则必须按操作系统的默认字符集转码

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn