PHP preg_match () Bilinmeyen Hata

0 Cevap php

Ben şu anda) (preg_match kullanarak PHP bir csv dosyayı işlemek için çalışıyorum. I işlemi çalışıyorum verilerin bir örneği aşağıdaki gibidir;

"SN120187", "Aldersr Rd Nr Dükkân", "", "STHPTN", "50 56.4241N", "1 25.7587W", "1001077307", "2010-05-30 15:29:49", "10" , "", "SURRSHLT3x32", "BSU243L1", "iiipiiipiiipiiipiii"

"HA035028", "Hursley Yol - Leigh House Hastanesi", "", "Hursley", "50 59.6772N", "1 23.4412W", "", "", "24", "", "", "" , "Hızlı kahverengi tilki Hızlı kahverengi tilki tembel köpeğin üstünden atladı tembel köpeğin üstünden atladı",

Ben (aşağıda) bu veriler üzerinde kullanmaya çalışıyorum düzenli bir ifade var;

if(preg_match('/^"(?P<code>.+)","(?P<description>.+)","(?P<bay>.*)","(?P<area>.+)","(?P<lat>.+)","(?P<lon>.+)","(?P<build>.*)","(?P<msgTime>.*)","(?P<routes>.*)","(?P<simNo>.*)","(?P<displayType>.*)","(?P<version>.*)","(?P<comments>.*)",$/', $line, $matches)){}

Normal ifade, ancak çalışmıyor veri olmayan boş olarak csv doğrultusunda son alana sahip, verilerin% 95 çalışır.

Ben, veri etrafında oynamaya başladı (özellikle son alan) ve aşağıdaki veriler regex geçmez bulundu;

"SN120187", "Aldersr Rd Nr Dükkân", "", "STHPTN", "50 54.5512N", "1 22.9273W", "1001077307", "2010-05-30 15:29:49", "10" , "", "SURRSHLT3x32", "BSU243L1", "iiiipiiiipiiiipiiii"

"HA035028", "Hursley Yol - Leigh House Hastanesi", "", "Hursley", "52 58.3498N", "1 26.5421W", "", "", "24", "", "", "" , "iiiipiiiipiiiipiiiipiiiipiiiipiiiipiiiipiiiipiiiipiiiipii"

Eğer yukarıdaki verilerden son alanından bir karakter kaldırırsanız, ancak, o geçecek. Onunla uğraşırken, ben bu hatayı almak için hiçbir tutarlı model olduğunu öğrendim; dize Kapsamlı uzunluğu (bu diğer alanlara ekstra karakterler ekleyerek gösterilmiştir) önemli görünmüyor, ve aynı zamanda nihai alanının uzunluğu meselesi ya da değil.

Ben ne olup bittiğini hiçbir fikrim yok. Herkes herhangi bir fikir var mı?

Şu anda PHP sürümü 5.3.2 çalıştırıyorum ve hiçbir hata mesajları ortaya çıkıyor.

0 Cevap