Сделать уникальный 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] => 1733807870
[usec] => 507995
[minuteswest] => -180
[dsttime] => 0
)
Уникальный id/ид из емайла.
Выше приведенный примеры создания уникального id/ид хороши по своему!
Но у них есть один большой недостаток -
Эти уникальные идентификаторы не привязаны никак к пользователю!
А если требуется такой, что делать?
Что есть уникального у пользователя?
Какой параметр у пользователя будет всегда уникальный?
Правильно!
Его емайл!
Например:
Чтобы скрыть его...
И сделать уникальный id/ид из емайла... опять берем md5
И выведем с помощью echo
Результат создания уникального id/ид из емайла:
Уникальный id/ид из страницы.
Для того, чтобы создать уникальный id/ид из страницы нам понадобится php - не будем же мы вручную это делать.
Нам понадобится:
Получим часть адресной строки после домена с помощью
parse_url, чтобы всякая дрянь после ".html" нам не попалась...
Не буду заново пересказывать выше приведенную ссылку на страницу... сразу напишем код:
Выведем здесь:
Добавляем опять md5
Выведем уникальный id/ид из адреса страницы:
Несколько вариантов создания уникального id/ид .
Я рассмотрел несколько вариантов создания уникального id/ид на сайте!
Еще... как вариант... можно создать такой же уникальный id/ид из телефона пользователя, но это уже более сложный вопрос... поскольку, проверить его будет не просто... нужно дополнительно заморочиться!
Свои комменты в ожидании переделки!
Когда сделаю не знаю!
Времени нет...
Иначе сообщение будет удалено, вас в бан - все просто!
Но если, сил нет как хочется высказать всё, что вы думаете об этом, пожалуйста - комменты от Vk - форма ниже: