我正在尝试打开一个文件,以便在PHP脚本中阅读,但遇到了麻烦。
这是我的代码
$fileHandle = fopen("1234_main.csv", "r")or die("Unable to open");
if (!file_exists($fileHandle))
{
echo "Cannot find file.";
}
该脚本与我尝试读取的文件位于同一目录中,并且没有其他读/写权限错误,因为我可以在同一目录中创建/读取其他文件。
当我运行脚本时,我只得到"找不到文件"错误信息。为什么会显示此错误消息?当然,如果fopen()无法打开文件"或死亡声明"应该结束脚本吗?
另外,为什么我无法打开文件,当它确实存在并且与脚本位于同一位置时(我也尝试使用文件名的完整路径而不仅仅是文件名)。
我对php很新(但是在c ++中有exp)所以如果它是一个愚蠢的问题我道歉。
非常感谢
答案 0 :(得分:3)
在PHP中,file_exists()
需要文件名而不是句柄。试试这个:
$fileName = "1234_main.csv";
if (!file_exists($fileName))
{
echo "Cannot find file.";
} else {
$fileHandle = fopen($fileName, "r")or die("Unable to open");
}
另请注意,在Web服务器上执行脚本时,必须相对于最初请求的php脚本指定文件名。
答案 1 :(得分:1)
您可以使用file_get_content()
进行此操作。失败时,file_get_contents()
将返回FALSE。例如
$file = file_get_contents('1234_main.csv');
if( $file === false ){
echo "Cannot find file.";
}
答案 2 :(得分:0)
file_exists
采用字符串,而不是文件句柄。见http://php.net/manual/en/function.file-exists.php
答案 3 :(得分:0)
file_exists()
将文件名作为输入,但代码的逻辑有问题。你首先尝试打开一个文件然后检查它的存在吗?
首先应通过file_exists("1234_main.csv")
检查其存在情况,如果存在则尝试打开它。