Ben RegX neredeyse hiçbir deneyimi var, ama benim en iyi çalışıyor.
Ben böyle bir dizesi vardır:
$fString = "Name=Sök,Value=2,Title=Combine me,Options=[Item1=1,Item2=2,Item3=3]";
Ben bu gibi görünen bir dizi almak istiyorum:
Array[0] = "Name=Sök"
Array[1] = "Value=2"
Array[2] = "Title=Combine me"
Array[3] = "Options=[Item1=1,Item2=2,Item3=3]"
Ne kadar yapmak başardı olduğunu:
preg_match_all("/[^,]*[\w\d]*=[^,]*/",$fString,$Data);
Ama ben son "Seçenek" düzeltmek için nasıl anlamaya olamaz.
Array ( [0] => Array ( [0] => Name=S�k [1] => Value=2 [2] => Title=Combine me [3] => Options=[Item1=1 [4] => Item2=2 [5] => Item3=3] ) )
... Ve neden sonuç bir dizi içinde bir dizidir?!?
[EDIT]
Ben burada yapmak ne çalışıyorum fikrine açıklamak gerekiyor sanırım, ben daha fazla doğru yolda emin değilim.
Ben bir dizideki tüm "kalıcı" değişkenleri saklamak bazı sınıfları oluşturduk. Ben bir veritabanında saklanır, böylece bu dizi serileştirildiğini bir işlevi var.
Ben tüm serialize () fonksiyonu hakkında biliyorum, ama olduğu gibi ben bunu kullanamazsınız yüzden bazı filtreleme yapıyorum ve ben de manuel düzenleme için daha okunabilir olmasını tercih. Bu dizi korunmuş gerektiğini, içindeki diziler iç içe olabilir. Ben geri veritabanından tüm okuduğunuzda, orijinal dizi yeniden oluşturulması gerekir.
Ben tüm eval () komutu ile çalışan ama ben çünkü "veya 'karakterleri asıl dış dize kırılma dizileri içe olan derde içine tökezledi. Yani bu yaklaşım olması için gerekli iç içe dizeleri olmadan her şeyi seri hale getirmek için bir girişim oldu korunmuş.
Ben, ben oradayım preg_match_all ile iç içe verileri çözebilir Yani aksi takdirde ben başka bir çözüm ile gelmek gerekir.
Ben veriler, olarak, hem de kaçtı gerekiyor sanırım, ve []