Как генерируют уникальные каталоги на ОЧЕНЬ крупных сайтах?

ZeiZ

Новичок
Как генерируют уникальные каталоги на ОЧЕНЬ крупных сайтах?

Доброе время суток, уважаемые гуру PHP!

Попросили меня тут недавно написать простенький сайт объявлений.

Сразу были расписаны этапы разработки:
1) Дизайн
2) HTML – форма
3) PHP обработчик
4) Админка
5) Табличный вывод объявлений
6) Объявление на страницу (подробное)
7) Форма отправки сообщений с сайта

Все вроде просто и идет быстрыми темпами…
Сейчас я не прошу Вас помочь мне со скриптами для сайта,
просто хочу понять логику других, ОЧЕНЬ крупных сайтов.

Дело в том, что в форме есть возможность добавления картинок:

PHP:
<input name=\"file1\" type=\"file\" accept=\"image/*\" class=\"input\" size=\"40\" value=\"".$_POST['file1']."\">
Каждое объявление хранится в MySQL, но абсолютный путь к объявлению должен быть типа: http://site.com/xxxxxx/(index.php)
то есть для каждого объявления создается каталог, где помимо index.php хранятся картинки данного объявления.

Вопрос в том, как такие крупные сайты как slando.ru, auto.ru и др.
генерируют эти каталоги чтобы не было повторов???

В моем то случае все просто. Можно генерировать хоть rand(); (вероятность повтора очень мала) хоть обрезанным substr();’ом функцией time(); (повтор только если добавляется более одного объявления в сек.) хоть opendir();’ом в цикле искать несуществующий каталог (очень нагружает только если каталогов десятки тысяч), хоть 2-мя запросами к БД (узнать номер последней (создать каталог +1), добавить объяву) (нагружает, да и глупо выглядит)
и ещё 999 методами.

Но для крупных сайтов это не приемлемо т.к. одни варианты могут иметь повтор(хоть и минимальный по тер.вер.), другие мега нагружают сервер.

Есть предположение, что все они также используют вид типа index.php?id=xxxxx, но каким-то методом парсят его в апаче и нам в браузере выводится совсем другое... и наоборот если мы вводим в браузер xxxxx/ , то он парсит для скрипта вид index.php?id=xxxxxx

Вот я и задался вопросом: Так ли они делают или как? (и как лучше)
 

HEm

Сетевой бобер
mod_rewrite

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

ZeiZ

Новичок
Автор оригинала: HEm
mod_rewrite

также есть и другие, более хитрые и извращенные способы
про mod_rewrite я знаю, но вот хотел услышать "более хитрые и извращенные способы"
ведь картинки тоже куда-то девать надо..... :)

Вот например

slando.ru:
http://www.slando.ru/photos/live/80/246880_1_F.jpg
здесь понятно, что картинка 1-ая в объявлении под номером 246880

auto.ru
объявление: http://www.cars.auto.ru/sale/AA53971/
катринки: http://s.auto.ru/A/02686560.jpg - вообще никакой логики

market.komok.com
объявление: http://market.komok.com/Offer.aspx?oid=b88c1662-87b2-4031-a153-71cbb66ae9c0&ReturnUrl=/Default.aspx
картинка: http://market.komok.com/UserImage.axd?id=4384ca21-dbbb-4688-8ce5-d7a8bd751931&size=Preview
это не php OFFTOPIC!

avto.kupiprodai.ru
объявление:http://avto.kupiprodai.ru/irorowg
картинка: http://kupiprodai.ru/lib/files/rorowg.jpg
не боятся повторов или это не rand(); ???

и т.д. и т.п.
 

tf

крылья рулят
auto.ru
объявление: http://www.cars.auto.ru/sale/AA53971/
катринки: http://s.auto.ru/A/02686560.jpg - вообще никакой логики
хорошая вещь

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

Есть предположение, что все они также используют вид типа index.php?id=xxxxx, но каким-то методом парсят его в апаче и нам в браузере выводится совсем другое... и наоборот если мы вводим в браузер xxxxx/ , то он парсит для скрипта вид index.php?id=xxxxxx
со второго раза доходит?
 

ZeiZ

Новичок
Да и спервого дошло )))
Просто забыл как эта апачная хрень называется.

is_file() - Определяет, является ли файл обычным файлом или ссылкой (насколько я знаю)
а не лучше уж тогда использовать

file_exists() - который определяет, существует ли такой файл
 

tf

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

is_file() - Определяет, является ли файл обычным файлом или ссылкой (насколько я знаю)
я не о закачке файлов на сервер имел ввиду

зы. is_file -- Определяет, является ли файл обычным файлом
is_link -- Определяет, является ли файл символической ссылкой
 
Сверху