PHP字符串拆分

Posted

技术标签:

【中文标题】PHP字符串拆分【英文标题】:PHP String Split 【发布时间】:2010-04-08 10:56:11 【问题描述】:

我需要将一个字符串拆分为 2,2,3,3 个字符的块,并且能够在 Perl 中通过使用 unpack 来做到这一点:

unpack("A2A2A3A3", 'thisisloremipsum');

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

Array
(
    [A2A3A3] => th
)

如何使用解包来做到这一点?我不想为它写一个函数,解压应该是可以的,但是怎么做呢?

提前致谢,

【问题讨论】:

【参考方案1】:

引用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'));因为这个不起作用..它至少可以自己创建一个索引。 :/ 再次感谢.. 是的,我想如果它可以默认创建一个数字索引会很有用/有帮助......但这不是它的工作方式,所以我们没有太多选择^^ 【参考方案2】:

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

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

【讨论】:

以上是关于PHP字符串拆分的主要内容,如果未能解决你的问题,请参考以下文章

PHP:将字符串拆分为数组 foreach char

如何拆分字符串并构建一个关联数组php?

php爆炸:使用空格分隔符将字符串拆分为单词

PHP:将字符串拆分为数组,例如没有分隔符的爆炸

用PHP脚本来拆分字符串并形成两个新字段

PHP WordPress功能将名称拆分为两行(或任意两个字符串/标题)