PHP Dize Bölünmüş

2 Cevap php

Ben 2,2,3,3 karakterlerin parçalarını içine bir dize bölmek gerekiyor ve unpack kullanarak Perl bunu başardı:

unpack("A2A2A3A3", 'thisisloremipsum');

Aynı işlevi PHP çalışmaz Ancak, bu çıktıyı verir:

Array
(
    [A2A3A3] => th
)

Unpack kullanarak bunu nasıl yapabilirim? Ben bunun için bir fonksiyon yazmak istemiyorum, ne kadar açmak mümkün olmalıdır ama?

Teşekkür peşin,

2 Cevap

Manuel sayfasını alıntı unpack :

unpack() works slightly different from Perl as the unpacked data is stored in an associative array.
To accomplish this you have to name the different format codes and separate them by a slash /.


Which means that, using something like this :

$a = unpack("A2first/A2second/A3third/A3fourth", 'thisisloremipsum');
var_dump($a);

Aşağıdaki çıktıyı alırsınız:

array
  'first' => string 'th' (length=2)
  'second' => string 'is' (length=2)
  'third' => string 'isl' (length=3)
  'fourth' => string 'ore' (length=3)

Ben bu işlevi hiç kullanmadım, ama belgelerine göre, A karakter "SPACE-yastıklı dize" anlamına gelir. Yani sadece ilk kelimenin ilk iki karakter alıyor bir tahmin tehlike olur.

Eğer çalıştı unpack("A2A2A3A3", 'this is lorem ipsum');? Var