str_replace не работает с персонажами: & lt; & gt; и & quot;

Я хочу удалить следующие символы из моей строки и заменить их ничем. Я использовал test заменить их просто так, чтобы я мог проверить это работает. Да, файл сценария сохраняется в кодировке UTF-8.

< , >, ", ' а также `

Я использовал простой str_replace, но по какой-то причине только удаление ' работает — все остальное остается.

$title = str_replace('"',"test",$title);
$title = str_replace("'","test",$title); // this one works
$title = str_replace("<","test",$title);
$title = str_replace(">","test",$title);
$title = str_replace("`","test",$title);

Есть ли лучший способ удалить только эти символы?

Редактировать: пытались использовать персонаж персонажа, но не работает:

$title = str_replace('"',"test",$title);
$title = str_replace("'","test",$title); // this one works
$title = str_replace("<","test",$title);
$title = str_replace(">","test",$title);
$title = str_replace("`","test",$title);
$title = str_replace(html_entity_decode('&gt;', ENT_COMPAT, 'UTF-8'), '', $title);
$title = str_replace(html_entity_decode('&lt;', ENT_COMPAT, 'UTF-8'), '', $title);
$title = str_replace(html_entity_decode('&quot;', ENT_COMPAT, 'UTF-8'), '', $title);
$title = str_replace(html_entity_decode('&grave;', ENT_COMPAT, 'UTF-8'), '', $title);

0

Решение

Я в конечном итоге исправить это с помощью preg_replace вместо:

echo preg_replace("~'|<|>|:~", "",$title);

Однако важно НЕ использовать htmlspecialchars в этом посте, иначе он не будет ловить < а также >

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]