У меня есть строка типа "Welcome to McDonalds®: I'm loving it™"
... Я хочу избавиться от символов ":"
, "'"
, ®
и ™
. До сих пор я пробовал следующее:
$string = "Welcome to McDonalds®: I'm loving it™";
$string = preg_replace('/[^a-zA-Z0-9 -]/', '', $string);
Но на выходе я получаю:
"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)
)
);