PHP字符串分割

3

我需要将一个字符串分割成2、2、3、3个字符的块,我可以在Perl中使用unpack来实现:

unpack("A2A2A3A3", 'thisisloremipsum');

然而,在PHP中同样的函数无法正常工作,它会输出以下内容:
Array
(
    [A2A3A3] => th
)

我如何使用unpack完成这个操作?我不想为此编写一个函数,但应该可以使用unpack完成,怎么做呢?
提前致谢。
2个回答

6
引用 unpack 手册页面:

unpack() 与 Perl 稍有不同,因为解包的数据存储在关联数组中。要实现这一点,您需要命名不同的格式代码用斜杠 / 分隔它们

这意味着,使用类似以下内容的东西:
$a = unpack("A2first/A2second/A3third/A3fourth", 'thisisloremipsum');
var_dump($a);

您将获得以下输出:
array
  'first' => string 'th' (length=2)
  'second' => string 'is' (length=2)
  'third' => string 'isl' (length=3)
  'fourth' => string 'ore' (length=3)

谢谢!我用斜杠将它们分开了,但是无法弄清命名的事情。print_r(unpack("A2/A2/A3/A3", 'thisisloremipsum'));因为这个不起作用... 它至少可以自己创建一个索引。 :/ 再次感谢.. - deniz
是的,我想如果它可以默认创建数字索引,那将会很有用/有帮助...但这不是它的工作方式,所以我们没有太多选择^^ - Pascal MARTIN

0

我从未使用过这个函数,但根据文档,A字符表示“填充空格的字符串”。所以我猜测它只取第一个单词的前两个字符。

你试过 unpack("A2A2A3A3", 'this is lorem ipsum'); 吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接