PHP String Split - PullRequest
       5

PHP String Split

3 голосов
/ 08 апреля 2010

Мне нужно разбить строку на куски по 2,2,3,3 символа, и я смог это сделать в Perl с помощью unpack:

unpack("A2A2A3A3", 'thisisloremipsum');

Однако та же функция не работает в PHP, она выдает следующее:

Array
(
    [A2A3A3] => th
)

Как я могу сделать это с помощью распаковки? Я не хочу писать для него функцию, это должно быть возможно с распаковкой, но как?

Заранее спасибо,

Ответы [ 2 ]

6 голосов
/ 08 апреля 2010

Цитирование справочной страницы: 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)
0 голосов
/ 08 апреля 2010

Я никогда не использовал эту функцию, но согласно документации, символ A означает «пробел с пробелом».Так что я рискну предположить, что это только первые два символа первого слова.

Вы пробовали unpack("A2A2A3A3", 'this is lorem ipsum');?

...