Генерирование уникальных ID

Бывают такие моменты, когда вам надо сгенерировать уникальную строку. Множество раз я видел, что для решения этой задачи используют функцию md5():
// генерируем случайную строку
echo md5(time() . mt_rand(1,1000000));

Но на самом деле для этих целей в PHP есть специальная функция uniqid()
// генерируем случайную строку
echo uniqid();
/* выведет
4bd67c947233e
*/
 
// ещё разок
echo uniqid();
/* выведет
4bd67c9472340
*/

Невооружённым взглядом можно заметить, что первые символы мягко говоря схожи… Так происходит из-за того, что данный метод использует время сервера для генерации символов. Это даже полезно, т.к. все сгенерированные значения получаются в алфавитном порядке, что даёт возможность быстро их сортировать.

Для того чтобы уменьшить шансы получения дубликата, мы можем добавить префикс или использовать второй параметр (увеличит количество символов):
// с префиксом
echo uniqid('foo_');
/* выведет
foo_4bd67d6cd8b8f
*/
 
// со вторым параметром
echo uniqid('',true);
/* выведет
4bd67d6cd8b926.12135106
*/
 
// оба
echo uniqid('bar_',true);
/* выведет
bar_4bd67da367b650.43684647
*/

Этот метод генерирует строки размером меньше, чем md5, тем самым вы сможете сэкономить место.
Теги:
ID
Добавлено: 10 Мая 2018 18:45:57 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...