- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Таблица jos_content, поле fulltext, 500 материалов (500 id). Можно ли массово удалить в Mysql (в поле fulltext у 500 материалов) такой код? Например используя постоянные выражения?
Можно, если установить эту библиотеку.
А что мешает написать пару строк на php для удаления по регулярке?
Какой должен быть код на php?
А просто запрос не подойдет?
UPDATE jos_content SET `fulltext` = REPLACE( fulltext, SUBSTRING( fulltext FROM LOCATE( '<table cellpadding='0' align='right' cellspacing='0' style='margin-left:10px; margin-right:25px; margin-top:0px;'>разное содержимое</table>', fulltext ) ) , '' ) ;
Между <table> и </table> разное содержимое у 500 материалов. Можно ли использовать тут регулярное выражение (.*?) ? Такой код сработает?
UPDATE jos_content SET `fulltext` = REPLACE( fulltext, SUBSTRING( fulltext FROM LOCATE( '<table cellpadding='0' align='right' cellspacing='0' style='margin-left:10px; margin-right:25px; margin-top:0px;'>(.*?)</table>', fulltext ) ) , '' ) ;
Между <table> и </table> разное содержимое у 500 материалов. Можно ли использовать тут регулярное выражение (.*?) ? Такой код сработает?
UPDATE jos_content SET `fulltext` = REPLACE( fulltext, SUBSTRING( fulltext FROM LOCATE( '<table cellpadding='0' align='right' cellspacing='0' style='margin-left:10px; margin-right:25px; margin-top:0px;'>(.*?)</table>', fulltext ) ) , '' ) ;
Пардон, думал разное содержание это и есть текс, бывает...)
Помню как-то эпидемия была, что на всех движках DLE в фул стори и в шорт стори появились коды iframe или script, и все было бы ничего, если бы в каждой новости не был свой шифрованный урл, т.е. у меня на сайте сейчас 110 тысяч новостей и в каждой был <script .... и урл скрипты для каждой новости был разный 1512515 55151515 12о5и12
ну вообщем удалял я это следующим образом:
update dle_post set`short_story`=replace(short_story,SUBSTRING(short_story FROM LOCATE('<script',short_story)),''),full_story=replace(full_story,SUBSTRING(full_story FROM LOCATE('<script',full_story)),'') where LOCATE('<script',full_story)>0
может под себя подгоните и поможет.
Такой запрос подойдет если только таблица находится в конце записи, иначе вместе с ней удалится и все что после нее.
Какой должен быть код на php?
Примерно такой
Заменить требуемые значения на свои
для подключения к бд: хост, логин, пароль, имя бд
для работы с таблицей: имя_поле (в каком поле находится нужная запись), таблица (имя таблицы)
Если бд работает в utf8, добавить после mysql_select_db
mysql_query("SET NAMES 'utf8'");
//id заменить на свой индентфифкатор записи
А если id 500 штук (с 1400 до 1900)? Как сразу все обработать?
А если id 500 штук (с 1400 до 1900)? Как сразу все обработать?
id, имеется ввиду имя поле. Оно не обязательно может быть id, встречается и fid, и pid и тд. Если у вас оно так и называется, значит оставляйте так.
ЗЫ.
Автор не несёт ответственности за работу скрипта.
Обязательно сделайте бэкап таблицы.
Прежде чем запускать скрипт, проверьте тщательно все настройки.
Удалиться именно этот блок?
<table cellpadding='0' align='right' cellspacing='0' style='margin-left:10px; margin-right:25px; margin-top:0px;'>разное содержимое</table>
Просто есть там еще 2 таблицы (но они без стилей, то есть таблица которая вверху только одна).
Удалиться именно этот блок?
Нет, удалятся все таблицы. Вы, в паттерне, пишите регулярку для конкретной таблицы.
$patt = "#<table cellpadding='0' align='right' cellspacing='0' style='margin-left:10px; margin-right:25px; margin-top:0px;'>(.+?)</table>#";