Minecraft 客户端使用以下格式为消息着色:§6金色文本
其中 § 表示颜色代码的开头和后面的字符 ([0-9A-FK-OR])。有没有办法可以使用 preg_replace 从字符串中删除所有这些?
(?i)§[0-9A-FK-OR]
Use
$s = preg_replace('/\xA7[0-9A-FK-OR]+/i', '', $s);
对某些词不起作用。它剥离很多。尝试这个...
$s = preg_replace('/\xA7[0-9A-FK-OR]/i', '', $s);
这会去除颜色代码:
$motd = preg_replace('/\xa7./','',$motd);
您可能还想去除 0xc2 字符:
$motd = preg_replace('/\xc2|\xa7./','',$motd)
但是由于服务器可以发送任何东西,包括恶意字符串,这会更好:
$motd = preg_replace('/\xa7./','',$motd);
$motd = filter_var($motd,FILTER_SANITIZE_SPECIAL_CHARS,FILTER_FLAG_STRIP_LOW|FILTER_FLAG_STRIP_HIGH);