@Aricus

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

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

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

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

Войти через центр авторизации
Похожие вопросы
RecruitIT Москва
от 100 000 до 160 000 ₽
Simtech Development Санкт-Петербург
от 100 000 ₽
Директ Кредит Казань
от 70 000 до 120 000 ₽