Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как массово убрать последние 4 цифры из заголовка?

Как массово убрать последние 4 цифры из заголовка?


     05.11.2019    Все вопросы » Общие вопросы    113

вопрос
Сейчас заголовки у всех новостей такие:

Шестое чувство - 1999
Убийцы на замену - 1998

Нужно убрать в конце год, дефис и пробел чтобы получилось так:

Шестое чувство
Убийцы на замену

Как быстро это можно реализовать? Возможно ли sql запросом убрать не нужное из заголовка?

Ответа пока нет


31 комментарий

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 16:30 -

Здравствуйте, в MariaDB есть REGEXP_REPLACE. У вас какой форк mysql?

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

Kentavr
Юзер

Kentavr - 5 ноября 2019 16:51 -

Я не понял о чем Вы спрашиваете ) Если про тип БД то InnoDB

Kentavr
Юзер

Kentavr - 5 ноября 2019 16:54 -

А вот нашел.
Сервер: Localhost via UNIX socket
Тип сервера: MariaDB
Соединение сервера: SSL не используется Документация
Версия сервера: 10.1.41-MariaDB-0+deb9u1 - Debian 9.9
Версия протокола: 10
Пользователь: 5882_tmp_@localhost
Кодировка сервера: UTF-8 Unicode (utf8)

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 17:29 -

Убираем ВКОНЦЕ паттерн "- цирфы"

UPDATE dle_post SET title = REGEXP_REPLACE(title,'- [0-9]+$','');


ТОЛЬКО СПЕРВА ОБЯЗАТЕЛЬНО СДЕЛАЙТЕ БЭКАП!

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 17:30 -


Только такой тест удалось провести.

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

Kentavr
Юзер

Kentavr - 5 ноября 2019 17:32 -

Спасибо, сейчас попробую. А к примеру есть фильм Бегущий по лезвию 2049 - 2017 уберется то что мне надо? или 2049 тоже сотрется?

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 17:34 -

Уберется ровно то, что у вас сверху в вопросе, "Бегущий по лезвию 2049 - 2017" вернет "Бегущий по лезвию 2049"

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

Kentavr
Юзер

Kentavr - 5 ноября 2019 17:36 -

Спасибо. Еще вопросик есть. После данной операции если сделать перестроение публикаций в чпу обновятся данные? в url уберется год?

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 17:38 -

не знаю

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 17:40 -

в чем сложность то же самое провернуть с полем alt_name?

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

Kentavr
Юзер

Kentavr - 5 ноября 2019 17:41 -

Спасибо. Сделаю. Отпишусь позже

Kentavr
Юзер

Kentavr - 5 ноября 2019 18:13 -

С заголовками все прошло упешно. После перестроения ничего не поменялось. url остались прежними.
Сделал запрос изменив title на alt_name убрав пробел. Все прошло успешно. Огромное спасибо за помощь!

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 18:21 -

для спасибо есть пальцы вверх возле комментариев

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 18:29 -

т.к. теперь старые проиндексированные ссылки в поисковиках стали отдавать 404, по хорошему их нужно переадресовать на новые ссылки.

Мой совет.

Тип ЧПУ 1:
 RewriteRule ^([0-9]+)-(.*)-(\d{4}).html$ /$1-$2.html [R=301,L] 




Тип ЧПУ 2:
 RewriteRule ^([^.]+)/([0-9]+)-(.*)-(\d{4}).html$ /$1/$2-$3.html [R=301,L] 

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

Kentavr
Юзер

Kentavr - 5 ноября 2019 18:36 -

Все ссылки на сайте у меня сейчас такие site.ru/film/4273/

Как сделать переадресацию из таких ссылок?

site.ru/zar/matrica-1999.html
site.ru/rus/matrica-1999.html

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 18:39 -

RewriteRule ^([^.]+)/([0-9]+)-(.*)-(\d{4}).html$ /$2/ [R=301,L] 

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

Kentavr
Юзер

Kentavr - 5 ноября 2019 18:43 -

Не прокатило. В админке стоит чпу 1

прописано это RewriteRule ^film/([0-9]+)(/?)+$ index.php?newsid=$1&seourl=$2 [L]

Новости открываются по такому адресу site.ru/film/4273/

Ваша переадресация не проходит (

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 18:46 -

А, у вас что id не было в ссылках???

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

Kentavr
Юзер

Kentavr - 5 ноября 2019 18:51 -

Нет. Стоял хак я уже не помню какой.

Старые ссылки были такими

site.ru/zar/matrica-1999.html
site.ru/rus/matrica-1999.html

Это разьве важно. Я же написал какие ссылки были и какие нужны сейчас )
С чего на что переадресовать надо. Сейчас все работае ткак надо. Не хватает только переадресации со старых ссылок дял поисковиков

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 18:58 -

И откуда брать id для переадресации, если его нет изначально в старых ссылках? М?

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

Kentavr
Юзер

Kentavr - 5 ноября 2019 19:02 -

Да я ступил )) В любом случае спасибо огромное за sql запрос. С ним все отлично получилось. Задача Выполнена. Остальное сделает поисковик со временем...

Kentavr
Юзер

Kentavr - 5 ноября 2019 21:53 -

Только сейчас заметил что в заголовках в конце появился отступ.
Тут вроде нет его UPDATE dle_post SET title = REGEXP_REPLACE(title,'- [0-9]+$','');
Откуда он взялся я не понимаю ) ?

Через notepad++ открыл базу свою. Действительно отступ есть.
Если нажать в админке редактировать новость и сохранить, то отступ пропадает.
Как этого избежать? Новостей слишком много. Перестроение не помогает.

ТeraМoune
Юзер

ТeraМoune - 5 ноября 2019 23:12 -

отступ взялся потому как в регулярке он не учитывался
Шестое чувство - 1999 вырезав жирное остался отступ который был перед -, пробел тоже захватить надо было

сейчас можно попробовать вот это title = REGEXP_REPLACE(title,' $','')
когда новость сохраняется в её заголовке удаляются пробелы по обе стороны

ТeraМoune
Юзер

ТeraМoune - 5 ноября 2019 23:14 -

или может перестроение публикаций тоже должно исправить пробелы во всех заголовках

Kentavr
Юзер

Kentavr - 5 ноября 2019 23:16 -

Перестроение я уже делал. Не момогло.

sql запрос такой сделать?

UPDATE dle_post SET title = REGEXP_REPLACE(title,' $','')

ТeraМoune
Юзер

ТeraМoune - 5 ноября 2019 23:23 -

походе заголовки не перестраивает (
ну тогда да попробуйте запрос

Kentavr
Юзер

Kentavr - 5 ноября 2019 23:25 -

Спасибо, sql запрос сработал. Спасибо за помощь!!!

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 23:31 -

Несложно было догадаться до этого запроса, еще можно было подобное сделать через sql TRIM.

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 23:33 -

я кстати писал четко, что убирает в сообщении, и о пробеле я не писал) Так что все как есть)) Но человек вместо того, что бы разобраться с этим вопросом до конца, стал задавать еще 1000 вопросов не к месту, я думаю на стейковерфло его бы уже забанили))

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

Kentavr
Юзер

Kentavr - 5 ноября 2019 23:37 -

Банить за то что человек просит помощи на сайте который для этого предназначен )
Спасибо что помогли мне глупому решить мою задачу

dj-avtosh
php-developer

dj-avtosh - 5 ноября 2019 23:47 -

дело в жадности, не в глупости)

ЯД Донат: 41001679231462

telegram: @blob42
skype: elhan.isaev (seldom)

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх