出于测试目的,我需要的字符串,如:PHP - 如何使用控制字符或二进制数据生成字符串?
"test\x00string"
我想遍历所有的控制字符(00-1F),并自动生成字符串,这样我就不必杂波我的代码有31行像这样,但不知道如何在PHP中实现。
也用于测试格式错误的utf我可能想要插入其他字节序列到字符串。
出于测试目的,我需要的字符串,如:PHP - 如何使用控制字符或二进制数据生成字符串?
"test\x00string"
我想遍历所有的控制字符(00-1F),并自动生成字符串,这样我就不必杂波我的代码有31行像这样,但不知道如何在PHP中实现。
也用于测试格式错误的utf我可能想要插入其他字节序列到字符串。
对于某些字符有predefined escape sequences,可以在双引号中:
$nullByte = "\0";
但是,如果你要循环,最好的办法是chr()
:
$string = '';
foreach (range(0x00, 0x1F) as $i)
{
$string .= chr($i);
}
而且作为一行:
$string = implode('', array_map('chr', range(0x00, 0x1F)));
转义链接序列不正确,因为http://php.net/manual/en/regexp.reference.escape.php专门针对正则表达式,而不适用于一般字符串。我正在编辑这个答案来纠正它。 – spikyjt
$nullByte = chr(0);
您可以只连接字节来创建一个多字节字符串。
你试过'chr()'? http://www.php.net/manual/en/function.chr.php – Brad
@杰克我试图寻找“PHP生成控制字符的字符串”和类似的东西。 – nus
@Jack我也看看字符串的PHP文档 – nus