Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Короткий URL 
V
    Опции темы
AVA12
Дата 7.8.2013, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: 0
Всего: 4



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

Смутно подозреваю, что автор темы некорректно поставил задачу, и миелофон выдал коллизию хэша. Давай сначала:

Дано: множество урлов с некоего сайта, множество ЧПУ-урлов с того же сайта. Вопрос: сайт один или их много? Это наш(и) сайт(ы) или посторонние? Мы можем добавить на сайт свой модуль для работы с короткими ссылками? Мы (или админы сайта/ов) можем оперативно отслеживать изменение структуры сайта/ов и обновлять правила преобразования ссылок?

Что нужно получить: короткие ссылки, какждая из которых однозначно соответствует определенному урлу. Вопрос: какие требования предъявляются к коротким ссылкам (макс. длина, набор символов)? Короткая ссылка генерируется для конкретного урла или же для конкретной страницы сайта? Как быть с проблемой изменения структуры сайта/ов и, соответственно, изменения урлов (может, просто игнорировать проблему)?
PM ICQ Jabber   Вверх
Gold Dragon
Дата 7.8.2013, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



AVA12, хватит путать всех. В моём вопросе (первое сообщение в теме) чётко сказано что есть и что мне нужно... 

Механизм пишется для полноценной CMS, где возможно установка любых стороних расширений в любом количестве (компонентов, модулей, плагинов и т.п.)

Цитата(AVA12 @  7.8.2013,  15:16 Найти цитируемый пост)
Что нужно получить: короткие ссылки, какждая из которых однозначно соответствует определенному урлу. Вопрос: какие требования предъявляются к коротким ссылкам (макс. длина, набор символов)? Короткая ссылка генерируется для конкретного урла или же для конкретной страницы сайта? Как быть с проблемой изменения структуры сайта/ов и, соответственно, изменения урлов (может, просто игнорировать проблему)? 

- Да однозначно соответствовать
- Чем меньше тем лучше (сможешь уложить любой адрес в 3 буквы-цифру заплачу)
- Любой допустимый набор символов, но при условии что это ЧПУ, т.е. человекопонятный. (и я не уверен что буквы разного регистра приемлимы, а не одно и тоже)
- короткая ссылка конечно же для всего сайта (за некоторым исключением: внешние ссылки, ajax, ссылки управления и администрирования и т.п.)
- Структура однозначно может быть любой и меняться как угодно...

Я же сказал, что полноценный ЧПУ-механизм в моей CMS есть. Но я хочу сделать ещё один для определённых типов сайтов, например, каталогов или магазинов


Это сообщение отредактировал(а) Gold Dragon - 7.8.2013, 14:39


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
AVA12
Дата 7.8.2013, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: 0
Всего: 4



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

В таком случае упаковка компонентов урла вполне годится. Правила преобразования хранятся в файлах конфигурации, и при каждом изменении структуры урлов или добавлении модуля администратор обновляет правила (в принципе, можно возложить эту задачу на разработчиков модулей).

Если же модулю генерации коротких урлов неизвестны правила формирования исходных ссылок, то задача выглядит невыполнимой. Урл может содержать транслитерированное название объекта или раздела - и что с ним делать? Кодировать побуквенно смысла нет. Искать ид объекта в БД по этому имени? А в какой таблице? Как быть с совпадающими именами? А может, эти имена вообще не нужны, а вставлены только для красоты и человекопонятности?

В общем, нужно либо знать правила формирования урлов, либо забыть про формирование коротких ссылок по правилам.
PM ICQ Jabber   Вверх
krundetz
Дата 7.8.2013, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(Gold Dragon @  7.8.2013,  09:41 Найти цитируемый пост)
Друзья, есть задача, хочется услышать ответ smile А то получается, человек спрашивает как починить термостат на "жигулях", а ему отвечают, купи "мерседес" 

1. дело в том что тебе ответили, и ответили абсолютно верно
2. ты говоришь что тебе этот вариант не подойдет
3. хорошо, спрашиваем по чему
4. ты отвечаешь, что по той то и той то причине
5. ну так поэтому тебя и говорят, что при существование записей об однозначном соответствии урлов страницам в бд, то что ты придумываешь избыточно. Тебе бы слово никто ни сказал об избыточности, если бы аписей в БД не было, и какую страницу отдать по урлу определялось на лету.
Цитата(Gold Dragon @  7.8.2013,  09:41 Найти цитируемый пост)
krundetz, конечно ты прав и всё это заложено.. Но хочется иметь и такую страховку.. Вот представь сайт висит в сети лет 5, куча ссылок на его материалы в Инете. А тут бах (ну ведь всё бывает) и пути поменялись.. И теперь в интернете куча 404. А как отреагируют на это Поисковики? Однозначно "понижением рейтигна"

В том то и дело что это не будет страховкой. 
Если у тебя все хранится в базе, и если у тебя по какой то причине БД накроется, а бэкап окажется битым, то ты все равно не восстановишь урлы в первоначальном виде. У тебя ничего для этого не будет ни страниц ни указания соответствий урлов страницам. Сами то урлы можно будет узнать со сторонних сайтов, только толку тебе от них будет 0.
Цитата(Gold Dragon @  7.8.2013,  13:29 Найти цитируемый пост)
что касается твоего решения, то мы просто не можем знать ЧТО заменять на R

можем, в том то и дело что R четко соответствует article, это правило которое мы закладываем, другие слова будут сокращаться по другим правилам, причем мы можем сделать автоматическую генерацию правил в файл или БД.

Если я правильно понимаю твою проблему, то у тебя есть некий кэш, в виде статических html страниц, которые генерируются автоматически с адресами вида ,
Код

/content/allview/20130622/8462/45/12.html
 и ты хочешь чтобы короткие урлы вели на страницы этого кэша. Если так то просто генерируй кэш сразу с короткими урлами например так 
Код

/ca84624512.html

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

Это сообщение отредактировал(а) krundetz - 7.8.2013, 16:33


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
krundetz
Дата 7.8.2013, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(Gold Dragon @  7.8.2013,  14:38 Найти цитируемый пост)
- Чем меньше тем лучше (сможешь уложить любой адрес в 3 буквы-цифру заплачу)

любой не получиться, в три буквы и цифру влезет всего (28+10)!/(3!*(28+10-3)!) = 8436 урлов всего, что для серьезного проекта мизер

Цитата

Я же сказал, что полноценный ЧПУ-механизм в моей CMS есть. Но я хочу сделать ещё один для определённых типов сайтов, например, каталогов или магазинов

тебе нужен не еще один, а изменить этот, особенно учитывая это
Цитата

короткая ссылка конечно же для всего сайта (за некоторым исключением: внешние ссылки, ajax, ссылки управления и администрирования и т.п.)


ИМХО тебе следует расписать детальный план что есть на входе, что должно быть на выходе, а самое главное почему именно так, пока ты смутно представляешь общию картину, либо не можешь объяснить ее нам

Это сообщение отредактировал(а) krundetz - 7.8.2013, 16:50


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Gold Dragon
Дата 7.8.2013, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



сколько эмоций... ну начну тогда по порядку.. 

Цитата(AVA12 @  7.8.2013,  16:54 Найти цитируемый пост)
(в принципе, можно возложить эту задачу на разработчиков модулей)
немножко не правильный подход.. Если разработчик не придумал, это должен сделать "владелец" CMS. А разработчик может отказаться от "стандартной" переработки URL`а в более "компактное"

Цитата(AVA12 @  7.8.2013,  16:54 Найти цитируемый пост)
В общем, нужно либо знать правила формирования урлов, либо забыть про формирование коротких ссылок по правилам. 
а правило никто не скрывает.. У меня очень подробное описание механизма создания своего SEF (ЧПУ)... Если не хочешь заморачиваться, доверься встроенному, если хочешь , то пиши свой. Аналогичное должно быть и для коротких ссылок.

ну и теперь с товарищем krundetz поговорим smile Хороший ты человек, и был я в Сормово smile Но...
Цитата(krundetz @  7.8.2013,  17:44 Найти цитируемый пост)
ИМХО тебе следует расписать детальный план что есть на входе, что должно быть на выходе, а самое главное почему именно так, пока ты смутно представляешь общию картину, либо не можешь объяснить ее нам

Я отлично знаю что хочу smile И картина вся извстно и механизмы преобразования тоже. И хватит усложнять задачу то smile Да и я уже практически решил свою задачу и подсказал мне её Чучмек. Не именно его решение , но мысль именно в том направлении.. 
А суть простая: делаем хэш и уменьшаем количество знаков до тех пор, пока количество коллизий будет критичным по отношению к количеству потерь при удалении дублей. И всё это отдаём на регулированию конечному владельцу сайту. Т.е. минимум зависит от пользователя, максимум - полный хэш.

PS
кстати об общей картине... поверь, я её очень хорошо знаю? и не только картину но и код, т.к. один из главных разработчиков CMS smile

Добавлено @ 19:05
Цитата(krundetz @  7.8.2013,  17:44 Найти цитируемый пост)
любой не получиться, в три буквы и цифру влезет всего (28+10)!/(3!*(28+10-3)!) = 8436 урлов всего, что для серьезного проекта мизер
и ты очень прав.. даже маленький проект может иметь очень много динамических страниц.. Мы же говорим не о выводе контента только.. Но и о выводе при определённой сортировке, постранично, полным или сокращённым вариантом, с комментариями или нет и т.п. и т.д. То есть реально имея 100 материалов мы можем получить примерно 200-400 вариантов (имеется в виду URL`ов). И получается что "короткий адрес" реально будет 6-8 знаков...
Ну и как я сказал выше... механизм в принципе понятен, остальное нужно просто отдать на решение администратору сайта... smile


Это сообщение отредактировал(а) Gold Dragon - 7.8.2013, 19:11


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
AVA12
Дата 7.8.2013, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: 0
Всего: 4



Цитата
Да и я уже практически решил свою задачу [...] А суть простая: делаем хэш и уменьшаем количество знаков

В изначальной постановке проблемы были опасения по поводу возможной потери базы коротких ссылок. Но ведь при использовании коротких хэшей проблема остается! Так придется хранить таблицу (не кэш!) отношений (урл, короткая_ссылка) - как для обнаружения и разрешения коллизий, так и для того, чтобы сервер мог понять, что от него хотят. Даже частичная потеря этих записей практически убивает механизм коротких ссылок. Так что же, три страницы флуда - только ради тривиального и совершенно очевидного "решения", которое ни хрена не решает поставленную задачу?
PM ICQ Jabber   Вверх
Gold Dragon
Дата 7.8.2013, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Цитата(AVA12 @  7.8.2013,  20:47 Найти цитируемый пост)
Так что же, три страницы флуда - только ради тривиального и совершенно очевидного "решения", которое ни хрена не решает поставленную задачу? 
Дружище, а ты вообще читаешь что я пишу и что другие пишут? У тебя есть своё мнение или своё решение? Нет ? тогда о чём вообще ты говоришь, к чему всё это? всё что ты спросил я уже ответил в той или иной степени. 

PS
кстати, что за сленг ? smile Ну посмотри хотя бы его значение, ну или просто перевод с английского  smile (я про "флуд" и т.п.) Сам то зачем вообще тут пишешь? ( я про форум вообще)



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0868 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.