<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру

PHP и MySQL с Нуля до Гуру

Данный курс - это более 20-ти часов видеоуроков по изучению PHP и MySQL. Ключевой момент курса - это создание движка для сайта с нуля. Каждая строчка комментируется. Практически для каждого урока имеются упражнения. Причём данные упражнения направлены не только на закрепление материала, но и на реализацию реальных задач, встающих перед Web-разработчиками при создании сайтов. После курса Вы сможете без проблем создавать движки для любых сайтов.

Также почти к каждому уроку идут упражнения для закрепления материала.

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

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

Подписавшись по 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

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

Ответить

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