まず、PHPの「fatal error: maximum execution time exceeded」はサーバー側のエラーで、ブラウザのバージョンに依存するべきではないと思いますよね?しかし、それはあるようです!?!
フォームのテキスト領域からの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を使用しています
誰もこの問題を見たことがありますか?
編集: コードは、すべてのブラウザーを備えた 2 つの異なる PC を使用して、2 つの異なる Linux サーバー CentOS 5.3 および 5.5 でテストされています。
編集2:解決済み
問題が見つかりました。$delimiter の値は、「,」「;」の 3 つの値から取得されます。ブラウザが「\ t」をスペースとして表示する「\ t」と、私はそれに注意を払いませんでした。
Firefox が \t に対して何かを行っているようで、PHP はそれがタブであることを認識していません。ただし、他のブラウザは期待どおり \t を送信します。
fgetcsv($handle, 1000, "\t", '"') のように "\t" をハードコーディングすると、Firefox でも正常に動作します。
IEではなく、Firefoxが初めて私に多くの問題を引き起こしました:)