\x00在16进制ascii码中表示Null,php使用正则匹配替换如果写成这样
$content = 'xxxx';
$pattern = "/\x00/";
$content = preg_replace($pattern, "", $content);
会报Warning: preg_replace(): Null byte in regex in xxx.表示正则不可以有Null
输出$pattern,为
可以\x00在解析的时候会被当成Null,$pattern和我们预期的不一样。所以需要再加一个\对\进行转义,使\x00不被解析成Null,而是被当做\x00.
应该写成这样
$content = 'xxxx';
$pattern = "/\\x00/";
$content = preg_replace($pattern, "", $content);
输出$pattern,为