Помогите с запросом удалить ссылки из базы

Статус
В этой теме нельзя размещать новые ответы.

grebovich

Гуру форума
Регистрация
19 Мар 2012
Сообщения
363
Реакции
81
Помогите c запросом, нужно удалить ссылки из базы opencart
Общим задача следующая парсером сграбил товар в магазин opencart и в описании атрибутов были ссылки и они соответственно тоже сграбились ,в самой базе я заменил все ссылки старого сайта на свои .... но теперь ссылки в атрибутах остались просто ведут на моем сайте на 404 страницу!
ссылки имеют вид такой:
<a href="/generators/diesel/">дизельные</a>
<a href="/drill/schock/">ударные</a>
<a href="/svarochnye-apparaty/welding-inverters/">: инверторы</a>
<a href="/svarochnye-apparaty/welding-machine/">: полуавтоматы</a>

Итак далее...
Нужен запрос чтоб удалить все кроме анкора к примеру в <a href="/generators/diesel/">дизельные</a> удалить
<a href="/generators/diesel/">....</a> чтоб осталось только слово дизельные

Заранее всем спасибо за помощь.
 
Может конечно и в мускуле регуляркой как-то можно извернуться.
Но я бы банально в пхп прошелся циклом по всем записям и удалил ссылки функцией strip_tags.
 
Может конечно и в мускуле регуляркой как-то можно извернуться.
было бы то что нужно, но как создать запрос по регулярному выражению ... весь нет перерыл а толкового не нашел ни чего...
 
  • Заблокирован
  • #4
PHP:
$cont = preg_replace('#<a href[^>]*>.*?</a>#is', '', $text);
 
Может конечно и в мускуле регуляркой как-то можно извернуться.
Регулярка в мускуле умеет только искать выдавая true или false - для замены использовать не получится.
Но я бы банально в пхп прошелся циклом по всем записям и удалил ссылки функцией strip_tags.
А так же это удалит картинки и стили оформления...

Если на новом сайте есть аналогичные старым категории то я делал как-то так:
Код:
update `wp_posts` set `wp_posts`.guid = replace (`wp_posts`.guid, 'old_url', 'new_url' );
Поля и имена таблиц opencart не помню, но думаю проблем не возникнет подогнать под своё.
 
У strip_tags как бы есть параметр, отвечающий за список тегов, которые нужно оставить :)
Думаешь ТС станет читать спецификацию функции, если он не смог нагуглить REPLACE или регулярку типа #<a href[^>]*>.*?</a>#i ;)?
 
PHP:
$cont = preg_replace('#<a href[^>]*>.*?</a>#is', '', $text);
Так а как полный запрос сделать не по всей базе его гнать а именно по нужной таблице ... при том что название таблицы product_attribute

Думаешь ТС станет читать спецификацию функции, если он не смог нагуглить REPLACE или регулярку типа #<a href[^>]*>.*?</a>#i ;)?
Во во я не такой уж и большой гуру как вы тут :D
 
Последнее редактирование модератором:
Во во я не такой уж и большой гуру как вы тут :D
Я от того и решил серьёзно углубляться в изучение PHP, когда понял, что скопированный скрипт 30-60 минут занимается ерундой, которую можно сократить до 10 секунд и одной строчки кода вместо 10...
 
Пытаюсь так сделать UPDATE `product_attribute` SET `text` = REPLACE(`text`, '#<a href[^>]*>.*?</a>#is', '');
Говорит что ноль строк и бла бла , то есть ни чего не найдено и соответственно не измененно!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху