<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Генерация уникального ID на PHP

Генерация уникального ID на PHP

Очень часто при разработке сайтов требуется генерировать уникальный ID на PHP. Приведу пример, с которым я столкнулся в своей практике. Я занимался Интернет-магазином, и там были 2 типа товаров, которые настолько разные по своей природе, что отправлять заказы в одну таблицу было крайне неразумно. Но если я размещаю заказы по 2-м таблицам, то ID каждого заказа не является уникальным. Ведь может быть 10-й заказ в первой таблице и 10-й заказ во второй таблице. И как их различать? Вот эту проблему я и решил. А как, Вы узнаете из этой статьи.

Я добавил в каждую таблицу по одному полю key, в которое поместил уникальное значение, зависящее от текущего времени, которое, как известно, не стоит на месте (если, конечно, сервер не движется со скоростью света). Вот так это выглядело:

<?php
  $key = md5(microtime(true)); // MD5-хэш текущего времени с точностью до сотых секунды
?>

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

Вроде всё хорошо, однако, не так давно я нашёл прекрасную функцию, которая называется uniqid(), которая позволяет ещё лучше уникализировать ID.

<?php
  $id_1 = uniqid(); //508e12465f75b
  $id_2 = uniqid("pref_"); //pref_508e12465f7bb
  $id_3 = uniqid("pref_", true); //pref_508e12465f7c15.02077905
?>

Вариант без параметров аналогичен моему варианту, только он более короткий (и в плане кода, и в плане результата). А теперь описание параметров:

  • prefix (по умолчанию, пустая строка) - некий набор символов, который будет соединяться с уникальным ID. Это очень полезно, если Вы хотите действительно высокую уникальность, чтобы данная функция не совпала результатом, например, с каким-нибудь другим сайтом. Главное, придумать префикс поуникальнее.
  • more_entropy (по умолчанию, false) - если стоит true, то в значение ID будет добавлена дополнительная энтропия. Тем самым, результат будет ещё более уникальным.

Вот так легко генерируется уникальный ID на PHP. Вы можете использовать мой способ, а можете использовать функцию uniqid(). Если использовать просто uniqid() без параметров или только с префиксом, то скорость генерации выше в 1.5-2 раза (в абсолютном значении - это мизер, но всё-таки). А если с энтропией, то без разницы. Лично я перейду на uniqid(), всё-таки гарантировать, что не будет 2-х заказов в одну сотую секунды, не стоит. А вот скорость генерации уникального ID выше, меньше кода, да и сам ID компактнее.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (1):

brussens brussens 30.10.2012 20:47:05

Хм, не знал про данную функцию, надо будет поюзать.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.