Сделать уникальный id/ид php
Уникальный идентификатор php или уникальный id/ид в php. Сколько способов существует для создания уникального id/ид? Есть ли функция, которая может выдавать уникальный id/ид?
Подробно о создании уникального id/ид в php.
- Создание уникального id/ид с помощью функции "uniqid" uniqid
- Реальный уникальный id/ид из uniqid.
- Уникальный id/ид из microtime.
- Уникальный id/ид из емайла.
- Уникальный id/ид из страницы.
- Скачать
uniqid true
Создание уникального id/ид с помощью функции "uniqid"
Существует отдельная функция, которая так и переводится "уникальный id/ид "
НО!
Эта функция не гарантирует получения уникального значения. Большинство операционных систем синхронизирует время с NTP, либо его аналогами, так что системное время постоянно меняется. Следовательно возможна ситуация, когда эта функция вернёт неуникальный идентификатор для процесса/потока. Для увеличения вероятности получения уникального значения используйте параметр more_entropy.
Uniqid
Давайте попробуем вывести, что нам вернет функция "uniqid", для того, чтобы вывести уникальный id/ид с помощью "uniqid" нам потребуется...
Нам нужна функция echo.
И выведем вот таким образом :
И разместим данный код прямо здесь:
Как видим, что функция uniqid(); вернула:
Функция "uniqid" вернула значение из 13 знаков.
Uniqid true
Как мы уже видели в предупреждении..., что нужно добавить энтропии - давайте сделаем это!
В данном случае выводим вот таким образом:
И вывод данного варианта "uniqid":
Как видим, что функция uniqid('', true); вернула:
Функция "uniqid" вернула значение из 23 знака.
Реальный уникальный id/ид из uniqid.
Как я уже цитировал выше учебник, что функция "uniqid" не дает 100% вероятности возвращения уникального id/ид .
Парадоксально! Но факт! Функция, которая должна давать уникальный id/ид - его не дает! 
Ну что же... мы можем немного модифицировать функцию "uniqid", мы к ней... можем добавить... ну например функцию "mt_rand()":
Выведем её прямо здесь:
Результат:
Нам вернулось рандомное число...
Присоединим функцию uniqid(true) + mt_rand()
uniqid('', true) вернет рандомное число с точкой:
Результат:
Соединим две функции:
Результат:
Удалим точку с помощью str_replace
Результат:
Я даже не попытаюсь предположить... какая вероятность того, чтобы могли повториться две эти функции...
Уникальный id/ид из microtime.
Вариант создания уникального id/ид ! Его можно создать из функции microtime.
Какая вероятность не уникальности данного id/ид?
Предположить, что совпадут "микросекунды" - это...наверное... можно сравнить с чудом...
Для этого нам понадобится функция microtime().
Выведем её с помощью echo:
Результат:
Также поступим... с данной функцией... добавим str_replace? заменим точку и пробел на "ничего":
Результат:
Проверка работы функции для создания уникального id/ид .
Для создания такого уникального id/ид надо знать:
Функция microtime() возвращает текущую метку времени Unix с микросекундами. Эта функция доступна только на операционных системах, в которых есть системный вызов gettimeofday().
Поэтому... проверяем... работает ли на вашем сайте либо функцию microtime, либо gettimeofday():
Array
(
[sec] => 1781217681
[usec] => 833926
[minuteswest] => -180
[dsttime] => 0
)
Уникальный id/ид из емайла.
Выше приведенный примеры создания уникального id/ид хороши по своему!
Но у них есть один большой недостаток -
Эти уникальные идентификаторы не привязаны никак к пользователю!
А если требуется такой, что делать?
Что есть уникального у пользователя?
Какой параметр у пользователя будет всегда уникальный?
Правильно!
Его емайл!
Например:
Чтобы скрыть его...
И сделать уникальный id/ид из емайла... опять берем md5
И выведем с помощью echo
Результат создания уникального id/ид из емайла:
Уникальный id/ид из страницы.
Для того, чтобы создать уникальный id/ид из страницы нам понадобится php - не будем же мы вручную это делать.
Нам понадобится:
Получим часть адресной строки после домена с помощью
parse_url, чтобы всякая дрянь после ".html" нам не попалась...
Не буду заново пересказывать выше приведенную ссылку на страницу... сразу напишем код:
Выведем здесь:
Добавляем опять md5
Выведем уникальный id/ид из адреса страницы:
Несколько вариантов создания уникального id/ид .
Я рассмотрел несколько вариантов создания уникального id/ид на сайте!
Еще... как вариант... можно создать такой же уникальный id/ид из телефона пользователя, но это уже более сложный вопрос... поскольку, проверить его будет не просто... нужно дополнительно заморочиться!
В связи с тем, что... некоторые пользователи имеют отклонения от нормы... комменты закрыты до момента, как напишу скрипт, когда будут доступны только зарегистрированным, либо будет модерация комментов...
Свободно, комменты оставить более не получится!
Этим вы очень поможете проекту! Заранее огромное спасибо!