[より良い説明のために私の編集をチェックしてください]
私が持っている非常に大きな文字列について助けが必要です。
こんな感じです:
$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#";
ブレークラインではなく、空白として。
これをよく見ると、次のような2つの文字列です。
$splited_string = "TinteiroID:1#TinteiroLABEL:HP CB335EE#TinteiroREF:CB335EE#TinteiroMARCA:HP#TinteiroGENERO:Tinteiro Preto Reciclado#TinteiroQUANTIDADE:23#FIMPROD#";
私はこれpreg_split
を検索する必要があると思います$big_string
:
TinteiroID:[only numbers]#TinteiroLABEL:[any character, except "#"]#TinteiroREF:[any character, except "#"]#TinteiroMARCA:[any character, except "#"]#TinteiroGENERO:[any character, except "#"]#TinteiroQUANTIDADE:[only numbers]#FIMPROD#
$splited_string
[]角かっこ内にストライプを付けて、そこにある可能性のある文字を引用しています。
[]角かっこではなく、受け入れる必要のある各タイプの文字の正規表現トークンである必要があります。しかし、私はこれについてほとんど知りません。
そして、それぞれ$splited_string
を配列に格納し$array
ます。
誰かがこれを達成する方法の手がかりを与えることができますか?
ありがとう
編集:
私は自分の論理を説明しようとしています。
私はこの大きな文字列を持っています(ブレークラインなし):
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#
それらは2つの小さな文字列に分割できます。
preg-splitを使用して、これらの文字列に似ているが、値が異なる各分割文字列を割り当てたいと思いました。
TinteiroID:[only numbers]#
TinteiroLABEL:[any character, except "#"]#
TinteiroREF:[any character, except "#"]#
TinteiroMARCA:[any character, except "#"]#
TinteiroGENERO:[any character, except "#"]#
TinteiroQUANTIDADE:[only numbers]#
FIMPROD#
次に、分割された各文字列を配列に追加します。
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#
)
そして、配列内のすべてのオブジェクトに入るforeachループがあります。[0] [1] ...
別の正規表現を実行して値を収集し、それらの値を使用して何かを実行します。
はい、その「乱雑」で多くのCPUを必要としますが、..私にはこれ以上のアイデアはありません:S
編集:
アドバイスに従う:
私はこのコードを実行しました:
$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);
これは、big_stringを各「FIMPROD#」の最後の区切り文字に分割します。
今、私は配列に行き、その中の値ごとに行きました。それで何かをしなさい。
私は今それを試みます...私はそれをすることができたかどうかにかかわらず何かのケースを投稿します。