如何摆脱字符串中的"®"和"™"?

And*_*n83 1 php regex string html-entities

我有一个字符串一样"Welcome to McDonalds®: I'm loving it™"......我想摆脱":","'",®符号.到目前为止,我已尝试过以下内容:

$string = "Welcome to McDonalds®: I'm loving it™";
$string = preg_replace('/[^a-zA-Z0-9 -]/', '', $string); 
Run Code Online (Sandbox Code Playgroud)

但在我收到的输出上:

"Welcome to McDonaldsreg Im loving ittrade"......所以preg_replace在某种程度上转变®'reg''trade',这是不适合我,我不明白,为什么这种转换发生在所有.

如何摆脱这种转换?

解决:感谢您的想法,伙计们.我解决了这个问题:

$string = preg_replace(
    array('/[^a-zA-Z0-9 -]/', '/&[^\s]*;/'), 
    '', 
    preg_replace(
        array('/&[^\s]*;/'), 
        '', 
        htmlentities($string)
    )
);
Run Code Online (Sandbox Code Playgroud)

unw*_*ind 8

您可能在实体形式中拥有特殊字符,即®实际上®在您的字符串中.所以更换操作没有看到它.

要解决此问题,您可以过滤&SOMETHING; 子串,并删除它们.可能有内置的方法来执行此操作,可能是html_entity_decode.