Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сокращение ссылок
 
 автор: Догадывающийся   (09.10.2010 в 17:52)   письмо автору
 
 

Здравствуйте.
Подскажите пожалуйста алгоритм для сервиса сокращения ссылок...

  Ответить  
 
 автор: Красная_шляпа   (09.10.2010 в 20:34)   письмо автору
 
   для: Догадывающийся   (09.10.2010 в 17:52)
 

это что за зверь?

  Ответить  
 
 автор: Киналь   (09.10.2010 в 20:51)   письмо автору
 
   для: Красная_шляпа   (09.10.2010 в 20:34)
 

[url]goo.gl[/url]

Автору темы:
Нужно хранить в БД соответствие между полным и коротким URL'ами и при запросе второго редиректить на первый.

  Ответить  
 
 автор: deimand   (09.10.2010 в 22:52)   письмо автору
 
   для: Киналь   (09.10.2010 в 20:51)
 

Можно и без редиректа обойтись

  Ответить  
 
 автор: Киналь   (09.10.2010 в 23:16)   письмо автору
 
   для: deimand   (09.10.2010 в 22:52)
 

Э? В смысле?

  Ответить  
 
 автор: deimand   (10.10.2010 в 03:02)   письмо автору
 
   для: Киналь   (09.10.2010 в 23:16)
 

http://softtime.ru/forum/read.php?id_forum=1&id_theme=76421&page=4

  Ответить  
 
 автор: neadekvat   (10.10.2010 в 09:44)   письмо автору
 
   для: deimand   (10.10.2010 в 03:02)
 

Причем тут это?
Ссылка дается на сайт goo.gl, а затем вас должно переадресовать на какой-нибудь dsfmkwmf.ru/sdfkwewef/453/df/45345/fsdf.html

  Ответить  
 
 автор: Догадывающийся   (10.10.2010 в 01:24)   письмо автору
 
   для: Догадывающийся   (09.10.2010 в 17:52)
 

Уточнаю вопрос... меня интересует алгоритм который будет максимально компактно использовать комбинации чисел и букв.
например
site.ru/0001
site.ru/0009
site.ru/000a
site.ru/000A
site.ru/000b
site.ru/000B

и т.д. то есть при максимально коротком параметре получить как можно больше комбинаций. для сопастовления длинного урл и короткого.

  Ответить  
 
 автор: neadekvat   (10.10.2010 в 09:37)   письмо автору
 
   для: Догадывающийся   (10.10.2010 в 01:24)
 

А как у вас с математикой?
Если взять 26 букв английского алфавита только в нижнем регистре и составлять из них слова длиной 5 символов, вы получите в сумме 26^5 слов - более 11,8 млн. Мой алгоритм показан здесь в посте от 09.10.2010 в 16:13 (на генерации пароля).

Причем это не "уточню вопрос", это "напишу другой вопрос". Сервис сокращения ссылок - это то, о чем вам написали выше. А это - просто генерация набора символов.

  Ответить  
 
 автор: Киналь   (10.10.2010 в 11:05)   письмо автору
 
   для: Догадывающийся   (10.10.2010 в 01:24)
 

Пара минут гугля, общие соображение и школьный курс математики позволяют заключить, что:
а) максимальная длина URL'а составляет 2083 символа
б) максимальная длина доменного имени составляет 63 символа, минимальная — 1 символ.
в) максимальная длина домена первого уровня составляет 6 символов, минимальная — 2 символа.
г) регистр доменного имени и домена первого уровня игнорируется.
д) регистр остальной части URL'а имеет значение.
е) в URL'е могут использоваться латинские буквы, арабские цифры и некоторые знаки препинания (список ищите сами, для простоты их пока не учтём)
ё) в сумме получаем 26+10 = 36 символов для доменного имени/домена и 26*2+10 = 62 символа для остальной части URL
ж) самый худший для нас случай: доменное имя из одного символа, домен из двух, общая длина — максимальная.
з) это даёт общее число комбинаций N = 36^3+62^2079
и) если вы используете Unicode, в вашем распоряжении будет примерно 10^5 знаков.
к) для отыскания необходимой длины короткого URL нужно решить уравнение X * 10^5 = 36^3+62^2079, где Х — искомое.
л) найденная длина короткого URL'а будет минимально необходимой для кодирования всех возможно URL'ов.

Приведённые «выкладки» должны быть уточнены с учётом, во-первых, спецсимволов (?, &, @ и пр.), во-вторых, ограниченности набора протоколов, чьё обозначение также входит в URL, и в-третьих, с учётом ограниченности набора доменов первого уровня.

  Ответить  
 
 автор: ~AquaZ~   (10.10.2010 в 11:19)   письмо автору
 
   для: Киналь   (10.10.2010 в 11:05)
 

Киналь, супер!!! РЖУ:)

  Ответить  
 
 автор: Киналь   (10.10.2010 в 11:36)   письмо автору
 
   для: Киналь   (10.10.2010 в 11:05)
 

Наврал, прошу прощения. Ещё один пункт забыл. В пункте «к» мы найдём не длину короткого URL'а, а длину ключа в БД. Этот ключ нужно будет передавать GET-запросом, а поскольку это опять URL, то надо будет ещё перевести из Unicode в [a-Z0-9].

То есть, навскидку, вам хватит тысяч эдак полутора символов.

  Ответить  
 
 автор: Trianon   (10.10.2010 в 18:24)   письмо автору
 
   для: Киналь   (10.10.2010 в 11:36)
 

Ладно заливать-то :))
Ключ-то факт покороче выйдет :)

  Ответить  
 
 автор: Киналь   (10.10.2010 в 18:57)   письмо автору
 
   для: Trianon   (10.10.2010 в 18:24)
 

.

  Ответить  
 
 автор: Trianon   (10.10.2010 в 18:58)   письмо автору
 
   для: Киналь   (10.10.2010 в 18:57)
 

> сойдемся на пяти сотнях? :)
пяти сотнях чего? :))
первичный ключ в БД всяко можно сделать суррогатным.
А значит он не превысит 8 байт. :)))

  Ответить  
 
 автор: Киналь   (10.10.2010 в 19:01)   письмо автору
 
   для: Trianon   (10.10.2010 в 18:58)
 

А, этот ключ. Но сам-то «короткий» URL волей-неволей получится немаленьким)

PS Вот чёрт, закрыли возможность редактирования сообщений после ответа =(

  Ответить  
 
 автор: Trianon   (10.10.2010 в 19:06)   письмо автору
 
   для: Киналь   (10.10.2010 в 19:01)
 

>А, этот ключ. Но сам-то «короткий» URL волей-неволей получится немаленьким)
Если делать его с БД (чего я, признаться, не ожидал, после Вашего ликбеза об основах компрессии данных)
то короткий URL разумно сделать кодированным первичным ключом. так что те же 8-10 ну 12 от силы байт.
>
>PS Вот чёрт, закрыли возможность редактирования сообщений после ответа =(

Это уже давно так.
Зато дисциплиникует.
Неподумавши писать - людей насмешишь...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования