我想从一个大约3-4MB的文本文件中读取一个简单的字符串,但是fopen()失败了(调用了die()中的“can‘t open file”)。代码如下:
clearstatcache();
$fh = fopen("/my/path/to/file.txt", "r") or die("can't open file");
$sql = fread($fh,filesize("/my/path/to/file.txt"));发布于 2011-09-06 16:41:27
你有没有先检查过文件是否存在?
if (!file_exists("/my/path/to/file.txt") {
die('File does not exist');
}
clearstatcache();
$fh = fopen("/my/path/to/file.txt", "r") or die("can't open file");
$sql = fread($fh,filesize("/my/path/to/file.txt"));发布于 2011-09-06 16:46:45
您必须在代码中添加下面这一行
error_reporting(E_ALL);并在所有代码中始终保留这一行
还有这一行
ini_set('display_errors',1);并且只在开发服务器上保留这一行。
在生产环境中,应将其更改为
ini_set('display_errors',0);
ini_set('log_errors',1);通过这样做,在阅读现在显而易见的错误消息时,您将不需要Stackoverflow的帮助。
发布于 2011-09-06 16:45:10
尝试在芯片中输出系统错误或尝试使用try…接住。在开发时也会打开php错误。在打开文件之前,还要检查文件是否可读。
最常见的问题是:文件不存在(或者只是提供了不正确的路径?),没有足够的权限读取此文件。
https://stackoverflow.com/questions/7317114
复制相似问题