【发布时间】:2011-12-21 05:48:33
【问题描述】:
我在使用fgetcsv 函数时遇到问题。问题是确切的代码在我的本地有效,但在服务器中无效。以下是代码:
if (($handle = fopen("tmp/".$xlsfile, "r")) !== FALSE) {
$data = fgetcsv($handle, 1000, ",");
...
}
调试时,$handle 的 print_r 返回一些东西(资源 #99),但 print_r $data 什么也不返回。
这对我来说有点奇怪,因为当我在本地测试时,完全相同的代码和 .csv 文件可以工作。上传 csv 函数有效,因为我可以看到文件已上传,并且 fopen 返回正确的值。
我注意到的唯一区别是,在该页面中,实时服务器使用 https,但我认为这应该不是问题,因为文件已上传,并且 fopen 成功。
有人有想法吗?
更新 [已解决]: 我找到了解决办法,因为在live server中,这个页面使用了https,但是提交csv文件的form url前面没有https。
【问题讨论】:
-
授予 cvs 文件的完全权限。
-
你能检查
"tmp/".$xlsfile是否导致一个存在的文件? -
是的,该文件确实存在,我确实检查过。 fopen 成功的事实似乎证实了这一点。