@Aricus

Как заменить на дефисы все его аналоги?

У меня возникла сложность при поиске в БД mySQL значений с дефисом (... WHERE name LIKE '%СL-12%') . Оказывается, что дефис запросе и в базе данных разные. Я решил решить эту проблему заменой всех похожих на дефис символы на тот, который на клавиатуре над зх перед добавлением в запросы в БД. Какую команду в PHP нужно для этого сделать? Я помню, что таких символов немало, но вопрос в том, как прописать команду? Ведь в редакторе кода они все заменяются на один и тот же символ. Загуглить не получилось, очевидно, неправильно формулирую.
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
Adamos
@Adamos
Теоретически черточек в уникоде много, но реально в офисных текстах, откуда берутся все эти артикулы, можно столкнуться только с дефисом, минусом, коротким тире и длинным тире.
В пыхе три последних можно получить без возни с кодировками, например, декодировав −, – и — в соответствующие символы.
P.S. Ага, неразрывный дефис таки забыл.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
Можно определиться, какие символы у вас встречаются в подавляющем большинстве, и пропустить каждый из них через replace.
update your_table set name = replace(name, '_', '-')

Только смотрите внимательно, в какой кодировке подготавливаете и выполняете запрос, иначе искомый символ исказится и вы замените что-то другое.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы