powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Убрать пробелы в ссылках по всему сайту
15 сообщений из 15, страница 1 из 1
Убрать пробелы в ссылках по всему сайту
    #39749210
DimLV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Какое-то время назад перенос форум на новый движек, и толкьо сейчас обнаружил, что некоторые ссылки на форуме содержат пробелы. Пробелов вроде бы 2 подряд, но может где как, точно не знаю.
Например (ссылки все фейк)
https://vk.com/123 456
https://facebook.com/gr oups/12345
http://site.com/% 123%3DWRdLC9
Все проблемные ссылки принадлежат тегу a href, и обёрнуты с двойные кавычки ""
Подскажите пожалуйста, как это можно исправить через phpmyadmin?
База под 3 ГБ, экспортировать не вариант.
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749215
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если MySQL не версии 8, можно попробовать https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-replace Сходу не скажу, получится ли.
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749216
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон. Конечно, следует читать "не ниже версии 8"
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749233
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimLVнекоторые ссылки на форуме содержат пробелыВы уверены, что пробелы нужно просто убрать, а не, например, заменить на "%20" ?
Вы пробовали руками проверить несколько таких ссылок?
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749255
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удрать пробелы можно простым запросом
Код: sql
1.
2.
UPDATE tablename
SET fieldname = REPLACE(fieldname, ' ', '')



Однако:
1) Не всё то пробел, что выглядит как пробел. например, CHAR(160) на глаз от пробела ни в жисть не отличить...
2) Не каждый пробел - лишний:
miksoftВы уверены, что пробелы нужно просто убрать, а не, например, заменить на "%20" ?

С учётом этого
DimLVэкспортировать не вариант.на самом деле не просто вариант, а единственный правильный. Ибо, не имея бэкапа, лезть что-то править более глупо - показанный выше запрос обратно не откатишь.
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749331
DimLV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftВы уверены, что пробелы нужно просто убрать, а не, например, заменить на "%20" ?
Вы пробовали руками проверить несколько таких ссылок?

Да, пробовал, это именно пробелы, приложил скрин. Ссылки с этими пробелами не работаю, без них всё ок.

AkinaУдрать пробелы можно простым запросом
Код: sql
1.
2.
UPDATE tablename
SET fieldname = REPLACE(fieldname, ' ', '')



Насколько я понимаю, это удалит все пробелы в тексте, разве нет? Ссылки в постах пользователей, вперемешку с текстом.

AkinaОднако:
1) Не всё то пробел, что выглядит как пробел. например, CHAR(160) на глаз от пробела ни в жисть не отличить...
2) Не каждый пробел - лишний:
miksoftВы уверены, что пробелы нужно просто убрать, а не, например, заменить на "%20" ?

С учётом этого
DimLVэкспортировать не вариант.на самом деле не просто вариант, а единственный правильный. Ибо, не имея бэкапа, лезть что-то править более глупо - показанный выше запрос обратно не откатишь.
1 - Ну вот не работают ссылки с этими пропусками, а без них всё ок. Проверял.
По поводу бэкапа, естественно делаю, я имел ввиду редактирование текстового файл 3ГБ+ - то ещё веселье. Медленно, и понятнее, от того что он текст не становится ) По ссылкам как искать системы нет, это вручную надо только искать. Проще тогда сканировать пауком битые и вручную по сайту идти. Надеялся каким-то запросом через базу сделать.
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749336
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimLVредактирование текстового файл 3ГБ+ - то ещё весельеРуками, чтоли, редактировать его? Нехай какой-нить текстовый редактор работает. Вопрос только времени.
DimLVПо ссылкам как искать системы нет, это вручную надо только искать.В первом приближении уже описано - искать/заменять пробелы от двойных кавычек, которые сразу после href= идут до следующих двойных кавычек. Вполне посильная работа для регулярных выражений.
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749341
DimLV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleВ первом приближении уже описано - искать/заменять пробелы от двойных кавычек, которые сразу после href= идут до следующих двойных кавычек. Вполне посильная работа для регулярных выражений.
Да, в целом да. Но не умею. Может может кто подсказать регулярку под условие? И в чем это выполнить можно?
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749368
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimLVНо не умею. Может может кто подсказать регулярку под условие? https://regex101.com/
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749378
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimLVНасколько я понимаю, это удалит все пробелы в тексте, разве нет? Ссылки в постах пользователей, вперемешку с текстом.А сразу об этом сказать - не? Это ж надо было додуматься - задавать один вопрос, чтобы получить ответ на другой...

Формулируйте АБСОЛЮТНО ТОЧНЫЙ критерий, который позволит для любого пробела однозначно сказать - либо "это пробел в URL и его надо удалить", либо "это пробел в тексте, и его не надо удалять".

DimLVДа, пробовал, это именно пробелы, приложил скрин.
Мужик, ты эта... ты в себе?
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749574
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaФормулируйте АБСОЛЮТНО ТОЧНЫЙ критерий, который позволит для любого пробела однозначно сказать - либо "это пробел в URL и его надо удалить"
ТС так и написал в самом начале:
DimLVВсе проблемные ссылки принадлежат тегу a href, и обёрнуты с двойные кавычки ""Вроде, этой информации вполне достаточно, чтобы определить место проблемного текста вне зависимости, URL этот текст обозначает или что-то ещё. Однако, да, в значении атрибута href гипотетически может быть не только URL. И что делать с пробелами в яваскрипте, например, не понятно. :)
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749643
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleВроде, этой информации вполне достаточноСовершенно недостаточно. Вполне можно придумать фрагменты, которые после удаления пробелов превратятся в винегрет. Лениво только. Я уж не говорю о том, что влоб задача не решается хотя бы потому, что сам по себе href может быть не тегом, а фрагментом литерала - то есть речь на самом деле, если нет желания, ремонтируя одно, поломать другое, идёт о серьёзном парсинге HTML-текста, задаче явно не для MySQL.
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749644
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем более что товарищ даже о неразрывном пробеле не слышал...
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749895
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaВполне можно придумать фрагменты, которые после удаления пробелов превратятся в винегрет.Разумеется, о том выше и написал. Ну тут ТС виднее, чего он хочет.

Akinaзадаче явно не для MySQLВосьмой с появившимися в нем регекспами тоже не осилит, хотя бы в минимале? Не соберусь никак поставить его для понимания возможностей...
...
Рейтинг: 0 / 0
Убрать пробелы в ссылках по всему сайту
    #39749936
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleВосьмой с появившимися в нем регекспами тоже не осилит, хотя бы в минимале?В минимале - вполне. Но любая нестандартность ситуации - и результат непредсказуем. Т.е. сперва надо подобрать полный набор шаблонов ошибок, для каждого создать свой регэксп, прикинуть порядок их применения - и потом делать.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Убрать пробелы в ссылках по всему сайту
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]