Я использую pregmatch:
$titleClass = str_replace(' ', '-', get_the_title());
$titleClass = preg_replace('/[^a-zA-Z0-9]/', '', strtolower($titleClass));
$titleClass = preg_replace('/-+/', '-', $titleClass);
Я использую WordPress да, но так как это должно быть просто строкой, я подумал, что могу спросить об этом здесь. Всякий раз, когда я использую этот pregmatch вывод $titleClass
заменяет амперсанд на 038 есть идеи как его убрать? На символах типа «|» это работает отлично.
Похоже, ваш амперсанд превращается в htmlentity &038;
, После того, как вы сделаете замену, ваш скрипт удалит все символы, кроме цифр и латинских символов. Так &038;
преобразуется в 038
,
Вы можете проверить, верно ли это, выводя результат get_the_title()
функционировать, прежде чем делать какие-либо замены.
Чтобы удалить его, вы можете использовать функцию html_entity_decode () перед выполнением замены:
http://php.net/manual/en/function.html-entity-decode.php
Других решений пока нет …