PHP - 如何使用控制字符或二进制数据生成字符串?

时间:2012-05-17 19:18:59

标签: php string unit-testing

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

"test\x00string"

我想循环控制字符(00-1F)并自动生成字符串,所以我不必用这样的31行来混淆我的代码但不知道如何实现在php。

另外,为了测试格式错误的utf,我可能希望将其他字节序列插入到字符串中。

2 个答案:

答案 0 :(得分:2)

对于某些字符,有predefined escape sequences,可用于双引号:

$nullByte = "\0";

然而,如果你要循环,你最好的选择是chr()

$string = '';

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

作为一个单行:

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

答案 1 :(得分:1)

$nullByte = chr(0);

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