[检查我的编辑以获得更好的解释]
我需要一些帮助来处理我拥有的一个非常大的字符串。
就像这样:
$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
在 [ ] 方括号内删除了 and ,我引用了它可以存在的字符。
而不是 [ ] 方括号,它应该是应该接受的每种字符类型的 RegExpression 标记。但我对此知之甚少。
然后将每个存储$splited_string
在一个数组$array
中。
任何人都可以提供一些线索如何做到这一点?
谢谢
编辑:
我试图解释我的逻辑。
我有这个大字符串(没有断线):
丁泰罗ID:1#
Tinteiro标签:HP CB335EE#
TinteiroREF:CB335EE#
TinteiroMARCA:HP#
TinteiroGENERO:Tinteiro Preto Reciclado#
TinteiroQUANTIDADE:23#
FIMPROD#
丁泰罗ID:4#
Tinteiro标签: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#
)
然后会有一个 for each 循环进入数组中的每个对象。[0] [1] ...
做另一个 RegExpression 来收集这些值并对这些值做一些事情。
是的,它“凌乱”并且占用大量 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#”末尾的每个分隔符。
现在我已经进入了数组,并为其中的每个值。用它做点什么。
我现在会尝试...我会发布一些我设法做到或没有做到的案例。