3

文字列を 2、2、3、3 文字のチャンクに分割する必要があり、Perl では unpack を使用して分割できました。

unpack("A2A2A3A3", 'thisisloremipsum');

ただし、同じ関数は PHP では機能せず、次の出力が得られます。

Array
(
    [A2A3A3] => th
)

unpack を使用してこれを行うにはどうすればよいですか? そのための関数を書きたくないのですが、unpackで可能になるはずですが、どうすればよいですか?

前もって感謝します、

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文字は「スペースが埋め込まれた文字列」を意味します。したがって、最初の単語の最初の 2 文字だけを使用していると推測できます。

試しましたunpack("A2A2A3A3", 'this is lorem ipsum'); か?

于 2010-04-08T11:02:16.690 に答える