1

Minecraft 客户端使用以下格式为消息着色:§6金色文本

其中 § 表示颜色代码的开头和后面的字符 ([0-9A-FK-OR])。有没有办法可以使用 preg_replace 从字符串中删除所有这些?

(?i)§[0-9A-FK-OR]
4

3 回答 3

4

Use

$s = preg_replace('/\xA7[0-9A-FK-OR]+/i', '', $s);
于 2012-11-03T22:37:24.327 回答
1

对某些词不起作用。它剥离很多。尝试这个...

$s = preg_replace('/\xA7[0-9A-FK-OR]/i', '', $s);
于 2012-11-13T06:48:35.093 回答
1

这会去除颜色代码:

$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);
于 2013-02-14T10:07:33.703 回答