PHP - 如何生成带有控制字符或二进制数据的字符串


PHP - How do I generate strings with control characters or binary data?

出于测试目的,我需要如下字符串:

"test'x00string"

我想遍历控制字符 (00-1F) 并自动生成字符串,这样我就不必用这样的 31 行来弄乱我的代码,但不知道如何在 php 中实现这一点。

同样为了测试格式错误的utf,我可能想将其他字节序列插入字符串中。

对于某些字符,有预定义的转义序列,可以在双引号中使用:

$nullByte = "'0";

但是,如果您要循环,最好的选择是chr()

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

作为单行

$string = implode('', array_map('chr', range(0x00, 0x1F)));
$nullByte = chr(0);

您可以只连接字节以生成多字节字符串。