1

Minecraftクライアントは、次の形式でメッセージに色を付けます。§6ゴールドテキスト

ここで、§はカラーコードの先頭とそれに続く文字([0-9A-FK-OR])を示します。preg_replaceを使用してこれらすべてを文字列から削除する方法はありますか?

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

3 に答える 3

4

使用する

$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 に答える