Heim >Backend-Entwicklung >PHP-Tutorial >同级目录下文件获取失败

同级目录下文件获取失败

WBOY
WBOYOriginal
2016-06-23 14:39:031014Durchsuche

$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 环境中
都会出现无法识别中文文件名的情况
一定要用中文文件名,则必须按操作系统的默认字符集转码

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn