[Check My EDIT for better Explanation]
Ben var çok büyük bir dize ile biraz yardıma ihtiyacım var.
Onun böyle:
$big_string = "TinteiroID: 1 #TinteiroLABEL: HP CB335EE #TinteiroREF: CB335EE #TinteiroMARCA: HP #TinteiroGENERO:Tinteiro Preto Reciclado#TinteiroQUANTIDADE: 23 #FIMPROD #TinteiroID: 4 #TinteiroLABEL: HP 51633 M #TinteiroREF: 51633 M #TinteiroMARCA: HP #TinteiroGENERO:Tinteiro Preto Reciclado#TinteiroQUANTIDADE: 12 #FIMPROD #";
Hiçbir kırılma hatları gibi, ama o kadar beyaz boşluk.
Bu iyi bir göz atacak olursak, bunun gibi 2 dizeleri:
$splited_string = "TinteiroID: 1 #TinteiroLABEL: HP CB335EE #TinteiroREF: CB335EE #TinteiroMARCA: HP #TinteiroGENERO:Tinteiro Preto Reciclado#TinteiroQUANTIDADE: 23 #FIMPROD #";
Ben bunun için $big_string
aramak için bir preg_split
gerektiğini düşünüyorum:
TinteiroID:[only numbers]#TinteiroLABEL:[any character, except "#"]#TinteiroREF:[any character, except "#"]#TinteiroMARCA:[any character, except "#"]#TinteiroGENERO:[any character, except "#"]#TinteiroQUANTIDADE:[only numbers]#FIMPROD #
Ben $splited_string
çizgili ve [] köşeli parantez içinde ben orada olabilir hangi karakterler alıntı.
Bunun yerine [] köşeli parantez içinde, kabul edilmesi gereken karakter her türü için RegExpression belirteç olmalıdır. Ama ben bu konuda çok az şey biliyoruz.
Ve daha sonra bir dizideki her bir $splited_string
depolamak $array
.
Herkes bunu gerçekleştirmek için nasıl bazı ipuçları verebilir misiniz?
Teşekkürler
EDIT:
Ben mantığını anlatmaya çalışacağım.
(Hiçbir kırılma hattı ile) bu büyük dizesi vardır:
TinteiroID: 1 #
TinteiroLABEL: HP CB335EE #
TinteiroREF: CB335EE #
TinteiroMARCA: HP #
TinteiroGENERO:Tinteiro Preto Reciclado#
TinteiroQUANTIDADE: 23 #
FIMPROD #
TinteiroID: 4 #
TinteiroLABEL: HP 51633 M #
TinteiroREF: 51633 M #
TinteiroMARCA: HP #
TinteiroGENERO:Tinteiro Preto Reciclado#
TinteiroQUANTIDADE: 12 #
FIMPROD #
Bunlar 2 küçük dize bölünebilir.
Gebelik bölünmüş i hem bu olanları bakmak her splited dize atamak istedi, ancak farklı değerlerle:
TinteiroID:[only numbers]#
TinteiroLABEL:[any character, except "#"]#
TinteiroREF:[any character, except "#"]#
TinteiroMARCA:[any character, except "#"]#
TinteiroGENERO:[any character, except "#"]#
TinteiroQUANTIDADE:[only numbers]#
FIMPROD #
Sonra bir dizi için her splited dizeyi ekleyin:
Array
(
[0] => TinteiroID: 1 #TinteiroLABEL: HP CB335EE #TinteiroREF: CB335EE #TinteiroMARCA: HP #TinteiroGENERO:Tinteiro Preto Reciclado#TinteiroQUANTIDADE: 23 #FIMPROD #
[1] => TinteiroID: 4 #TinteiroLABEL: HP 51633 M #TinteiroREF: 51633 M #TinteiroMARCA: HP #TinteiroGENERO:Tinteiro Preto Reciclado#TinteiroQUANTIDADE: 12 #FIMPROD #
)
Ve sonra her döngü dizideki her nesnenin bir oraya gitmek olacaktır için. [0] [1] ...
Değerleri toplamak ve bu değerler ile bir şeyler yapmak için başka RegExpression yapmak.
Evet onun "dağınık" ve çok fazla CPU alır ama .. ben daha iyi bir ideia yok: S
EDIT:
Following the Advice:
Ben bu kodu yaptım ettik:
$big_string = "TinteiroID: 1 #TinteiroLABEL: HP CB335EE #TinteiroREF: CB335EE #TinteiroMARCA: HP #TinteiroGENERO:Tinteiro Preto Reciclado#TinteiroQUANTIDADE: 23 #FIMPROD #TinteiroID: 4 #TinteiroLABEL: HP 51633 M #TinteiroREF: 51633 M #TinteiroMARCA: HP #TinteiroGENERO:Tinteiro Preto Reciclado#TinteiroQUANTIDADE: 12 #FIMPROD #";CB335EE#TinteiroREF: CB335EE #TinteiroMARCA: HP #TinteiroGENERO:Tinteiro Preto Reciclado#TinteiroQUANTIDADE: 23 #FIMPROD #";
$array = explode("FIMPROD #", $big_string);
print_r ($array);
It splits the big_string to the at the end of each "FIMPROD #" the Delimiter for each one.
Şimdi ben dizi gitmek ve onun içinde her değer için var. Onunla bir şeyler yapmak.
Ben şimdi çalışacağım ... Ben bunu yapmak ya da değil yönetilen bir şey davayı yayınlayacağız.