首先我猜PHP中的“致命错误:超过最大执行时间”是服务器端错误,不应该取决于浏览器版本,对吧?不过好像有啊!?!
我有这段代码来读取来自表单中文本区域的 csv 数据。
$handle = tmpfile();
fwrite($handle, $csvclip);
fseek($handle, 0);
while (!feof($handle)) {
$r = fgetcsv($handle, 1000, $delimiter, '"'); <---- Here it gives Fatal Error
print $r[0];
}
而数据就是这样,没什么特别的,4列3行。
a b 1 2
c d 3 4
e f 5 6
代码适用于所有浏览器(IE、Chrome 等),我可以看到除 Firefox 之外的解析数据!!!!!!我在不同的 PC 上进行了测试,但相同。所有浏览器都可以,但 Firefox 为具有“fgetcsv”的行给出“致命错误:超出最大执行时间”
我正在使用 PHP 版本 5.2.10 和 2 个不同的 firefox 版本 3.5.16 和 3.6.6
以前有人见过这个问题吗?
编辑:代码在两台不同的 Linux 服务器 CentOS 5.3 和 5.5 上进行测试,使用两台具有所有浏览器的不同 PC。
编辑 2:已解决
好的,我发现了问题。$delimiter 值来自具有 3 个值的 "," ";" 和 "\t" 哪个浏览器将 "\t" 显示为空格,我没有注意它。
似乎 firefox 正在对 \t 做一些事情,所以 PHP 不明白它是选项卡。但其他浏览器按预期发送 \t 。
如果我像 fgetcsv($handle, 1000, "\t", '"') 对 "\t" 进行硬编码,也适用于 firefox。
第一次 Firefox 给我带来了这么多麻烦,而不是 IE :)