Как сгенерировать уникальный 36-и значный id используя php/js?

Как сгенерировать средствами php id вида: e7436adb-18e9-4295-939f-2325b64225bb?

Либо средствами js.
  • Вопрос задан
  • 1704 просмотра
Пригласить эксперта
Ответы на вопрос 3
mlnkv
@mlnkv
JavaScript Developer
уж лучше тогда так
function generate(str) {
  return str.replace(/[xy]/g, function(c) {
    var r = Math.random() * 16 | 0;
    return (c == 'x' ? r : (r & 0x3 | 0x8 )).toString(16);
  });
}

generate('xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx');
// "03bcf8e8-92de-4afd-9575-955d6ea94f70"
Ответ написан
@serjioms Автор вопроса
js code нарыл вот такой:

generateUUID = function () {
        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace( /[xy]/g, function ( c ) {
            var r = Math.random() * 16 | 0;
            return ( c == 'x' ? r : ( r & 0x3 | 0x8 ) ).toString( 16 );
        } );
    };


для PHP написал такой генератор по маске:

protected function generateUId()
    {
        $idMask = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";

        $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
        $result = '';
        for ($i = 0; $i < strlen($idMask); $i++) {
            if ($idMask[$i] == 'x') {
                $result .= $characters[mt_rand(0, 34)];
            } else {
                $result .= "-";
            }
        }
        return $result;
    }
Ответ написан
Комментировать
smanioso
@smanioso
Отмечайте ответы на свои вопросы!
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы