Minecraft客户端使用以下格式为消息着色: §6金色文字
其中§表示颜色代码的开头和后面的字符([0-9A-FK-OR])。有没有办法可以使用preg_replace从字符串中删除所有这些?
(?i)§[0-9A-FK-OR]
答案 0 :(得分:4)
使用
$s = preg_replace('/\xA7[0-9A-FK-OR]+/i', '', $s);
答案 1 :(得分:1)
不适用于某些单词。它剥离了很多。试试这个......
$s = preg_replace('/\xA7[0-9A-FK-OR]/i', '', $s);
答案 2 :(得分:0)
这会删除颜色代码:
$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);