Я хочу удалить следующие символы из моей строки и заменить их ничем. Я использовал 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('>', ENT_COMPAT, 'UTF-8'), '', $title);
$title = str_replace(html_entity_decode('<', ENT_COMPAT, 'UTF-8'), '', $title);
$title = str_replace(html_entity_decode('"', ENT_COMPAT, 'UTF-8'), '', $title);
$title = str_replace(html_entity_decode('`', ENT_COMPAT, 'UTF-8'), '', $title);
Я в конечном итоге исправить это с помощью preg_replace
вместо:
echo preg_replace("~'|<|>|:~", "",$title);
Однако важно НЕ использовать htmlspecialchars в этом посте, иначе он не будет ловить <
а также >
Других решений пока нет …