Генерація унікального id на php

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

Відео: Генерація унікальних ID товарів або статей при парсінгу контенту

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

Я додав у кожну таблицю по одному полю key, в яке помістив унікальне значення, залежне від поточного часу, яке, як відомо, не стоїть на місці (якщо, звичайно, сервер не рухається зі швидкістю світла). Ось так це виглядало:

lt ;?php
$ key
= md5(microtime(true)) -// MD5-хеш поточного часу з точністю до сотих секунди
?gt;



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

Відео: Швидкий Аналіз конкурентів і створення Унікального Торгового Пропозиції Запис уроку




Начебто все добре, однак, не так давно я знайшов чудову функцію, яка називається uniqid (), яка дозволяє ще краще уникализировать ID.

lt ;?php
$ id_1
= uniqid() -// 508e12465f75b
$ id_2
= uniqid("Pref_") -// pref_508e12465f7bb
$ id_3
= uniqid("Pref_",true) -//pref_508e12465f7c15.02077905
?gt;

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

Відео: How To Generate Unique ID in PHP

  • prefix (За замовчуванням, порожній рядок) - якийсь набір символів, який буде з`єднуватися з унікальним ID. Це дуже корисно, якщо Ви хочете дійсно високу унікальність, щоб ця функція не збіглася результатом, наприклад, з яким-небудь іншим сайтом. Головне, придумати префікс поунікальнее.
  • more_entropy (за замовчуванням, false) - якщо стоїть true, то в значення ID буде додана додаткова ентропія. Тим самим, результат буде ще більш унікальним.

Ось так легко генерується унікальний ID на PHP. Ви можете використовувати мій спосіб, а можете використовувати функцію uniqid (). Якщо використовувати просто uniqid () без параметрів або тільки з префіксом, то швидкість генерації вище в 1.5-2 рази (в абсолютному значенні - це мізер, але все-таки). А якщо з ентропією, то без різниці. Особисто я перейду на uniqid (), все-таки гарантувати, що не буде 2-х замовлень в одну соту секунди, не варто. А ось швидкість генерації унікального ID вище, менше коду, та й сам ID компактніше.

Поділися в соціальних мережах:

Схожі
Prompt - зміна запрошення командного рядка cmd windows.Prompt - зміна запрошення командного рядка cmd windows.
220 Вольт220 Вольт
Microsoft: в сша відкритий передзамовлення на ос windows 8.1Microsoft: в сша відкритий передзамовлення на ос windows 8.1
Продано 10 мільйонів пристроїв raspberry piПродано 10 мільйонів пристроїв raspberry pi
Перерва в написанні статейПерерва в написанні статей
Вийшов відеокурс "створення інтернет-магазину на php і mysql"Вийшов відеокурс "створення інтернет-магазину на php і mysql"
Rutaxi онлайнRutaxi онлайн
Управління таблицями в phpmyadminУправління таблицями в phpmyadmin
Скласти вибірково дані з таблиці excel.Скласти вибірково дані з таблиці excel.
Замовлення сайту під ключЗамовлення сайту під ключ
» » Генерація унікального id на php