3

我需要将一个字符串拆分为 2,2,3,3 个字符的块,并且可以通过使用 unpack 在 Perl 中执行此操作:

unpack("A2A2A3A3", 'thisisloremipsum');

然而,相同的函数在 PHP 中不起作用,它给出了以下输出:

Array
(
    [A2A3A3] => th
)

我怎样才能通过使用解包来做到这一点?我不想为它写一个函数,解包应该是可能的,但是如何?

提前致谢,

4

2 回答 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)
于 2010-04-08T11:01:04.283 回答
0

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

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

于 2010-04-08T11:02:16.690 回答