ant1vit
@ant1vit

Как найти ссылки и удалить их не трогая текст в нутри ссылок?

Нужно найти все ссылки (ссылки известны) на сайте и удалить их, но не трогая текст внутри ссылке
Сейчас:  <a href="info/glossary/П/"> Может буть любой текс, его нужно оставить </a>
Должно остаться так: Может быть любой текст, его нужно оставить

На локальном компе стоить mysql 8, там написал запрос с функцией REGEXP_REPLACE
update site_content set content = REGEXP_REPLACE(content,'(<a href=\"info\/glossary\/П\/\">)(.*?)(<\/a>)', '\\2')

Все отлично работает, ссылки вырезает, а на хостинге установлена mysql 5.7.27, в этой версии функции REGEXP_REPLACE еще нет. Какой функцией там это сделать?
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 3
anton_reut
@anton_reut
Начинающий веб-разработчик
Выведи тексты php-скриптом, им же удали ссылки через регулярку, затем занеси результат обратно в базу.
Ответ написан
beliyadm
@beliyadm
because open source matters
Аналогичную регулярку только в блокноте выполните (тот же notepad++) - взяли дамп таблицы, прогнали в блокноте замену регулярным выражением, загрузили обратно в базу
Ответ написан
Комментировать
idShura
@idShura
Если нужно запросом без использования REGEXP_REPLACE, то можно попробовать как-то так:

SELECT content,
       REPLACE(
                CONCAT(
                       LEFT(content, LOCATE('<a href=', content)-1),
                       SUBSTRING(content, LOCATE('>', content)+1)
                       ),
                '</a>', ''
               ) new_content
  FROM site_content


Перед тем как делать update, нужно проверить запрос!
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы