Удалить строку из новостей в DLE

D5
На сайте с 01.02.2009
Offline
174
724

Здравствуйте!

Есть строка в DLE, которая встречается где-то в 3к новостей.

Строка вида [lеft]http://sait.ru/uploads/posts/2012-08/12655_novost.jpg " />[/lеft]

Как ее можно удалить? Через стандартную функцию DLE в админке "Поиск и замена" не получилось.

Как я понял, ее можно удалить через регулярки в Notepad++, но к сожалению я в этом не разбираюсь.

Пробелов после
" />" />

Станислав
На сайте с 27.12.2009
Offline
259
#1

строка то где находиться? в базе данных или где?

юзайте

UPDATE table SET pole = REPLACE(pole, 'тут что нужно заменить', '');
Мы там, где рады нас видеть.
K5
На сайте с 21.07.2010
Offline
209
#2

скачаваете базу данных на комп (через phpmyadmin, при экспорте поставить галку drop table if exist, кодировка cp1251), открываете notepad++"ом, поиск-заменить то что нужно пустой строкой без пробелов, закидываете базу обратно на хостинг

аська 45два48499два записки на работе (http://memoryhigh.ru) помогу с сайтом, удалю вирусы, настрою впс -> отзывы ТУТ (/ru/forum/836248) и ТАМ (http://www.maultalk.com/topic140187.html) !!!всегда проверяйте данные людей, которые сами пишут вам в аську или скайп!!!
D5
На сайте с 01.02.2009
Offline
174
#3
Ms-Dred:
строка то где находиться? в базе данных или где?
юзайте
UPDATE table SET pole = REPLACE(pole, 'тут что нужно заменить', '');

Все верно в базе данных, но строка в базе выглядит так:

<div align=\"left\"><img src=\"http://sait.ru/uploads/posts/2012-08/12655_novost.jpg\" alt=\'название новости\' title=\'название новости\' /></div>'

Соответственно, значение в тегах alt и title меняются, а в ссылка на картинку везде одинаковая.

kgtu5, изначально я пробовал так делать, но простой функцией замены в notepad++ не получилось, так как там строка выглядит, как я написал выше.

siv1987
На сайте с 02.04.2009
Offline
427
#4
dokker555:
kgtu5, изначально я пробовал так делать, но простой функцией замены в notepad++ не получилось, так как там строка выглядит, как я написал выше.

Без разницы как там строка выглядит, значит вы неправильно составили условие для замены. Слеши при выполнения sql запроса нужно экранировать.

UPDATE dle_post SET full_story = REPLACE(full_story, '<div align=\\"left\\"><img src=\\"http://sait.ru/uploads/posts/2012-08/12655_novost.jpg\\" alt=\\\'название новости\\\' title=\\\'название новости\\\' /></div>', '');

П.С.

dokker555:
Соответственно, значение в тегах alt и title меняются

Тогда без регулярных выражений не обойтись.

Хортица
На сайте с 22.12.2006
Offline
289
#5

А картинки отдают при этом 200 ответ или 404 ?

Если 404, то у меня есть решение. Если картинки живые то увы без регулярок не обойтись

На XBit.Money (https://xbit.money/?rid=111) меняю крипту на гривны. Лучшие курсы Обмен Вашего PayPal/ЯД/QIWI/WebMoney и куча плюшек! Рекомендую (https://exchangex.ru/index.php?who=26749)
Станислав
На сайте с 27.12.2009
Offline
259
#6

тогда надо кодить

Нужно делать регулярку, подключатся к базе и обновлять ее

D5
На сайте с 01.02.2009
Offline
174
#7
Хортица:
А картинки отдают при этом 200 ответ или 404 ?
Если 404, то у меня есть решение. Если картинки живые то увы без регулярок не обойтись

Приветствую, Кирилл! Да, к сожалению картинки отдают ответ 200 ок, ну у меня есть решение, как сделать 404 ошибки. Отписал Вам в ЛС.

Станислав
На сайте с 27.12.2009
Offline
259
#8

Вот вам регулярочка по уничтожению вашей картинки

<?php

$r = "проверка <div align=\"left\"><img src=\"http://sait.ru/uploads/posts/2012-08/12655_novost.jpg\" alt=\'название новости\' title=\'название новости\' /></div> проверка" ;
$r = preg_replace('~<div align=\"left\"><img [^>]* /></div>~', '', $r) ;
echo $r;
?>

Вам нужно подключиться к базе и перебрать все записи с использование регулярки, ну и конечно же обновлять их сразу.

D5
На сайте с 01.02.2009
Offline
174
#9

Спасибо всем! Проблему решил с помощью скрипта Хортицы.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий