2

テスト目的で、次のような文字列が必要です。

"test\x00string"

制御文字 (00-1F) をループして文字列を自動的に生成したいので、このような 31 行でコードを乱雑にする必要はありませんが、php でそれを実現する方法がわかりません。

また、不正な形式の utf をテストするために、他のバイト シーケンスを文字列に挿入したい場合があります。

4

2 に答える 2

3

特定の文字には、事前定義されたエスケープ シーケンスがあり、二重引用符で使用できます。

$nullByte = "\0";

ただし、ループする場合は、次のようにするのが最善の方法ですchr()

$string = '';

foreach (range( 0x00, 0x1F ) as $i)
{
    $string .= chr($i);
}

そしてワンライナーとして:

$string = implode('', array_map('chr', range(0x00, 0x1F)));
于 2012-05-17T19:37:15.793 に答える
1
$nullByte = chr(0);

バイトを連結してマルチバイト文字列を作成できます。

于 2012-05-17T19:21:24.203 に答える