>백엔드 개발 >PHP 튜토리얼 >同级目录下文件获取失败

同级目录下文件获取失败

WBOY
WBOY원래의
2016-06-23 14:39:031014검색

$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으로 문의하세요.