Вход Регистрация
Файл: gapps/vendor/fzaninotto/faker/src/Faker/Provider/Uuid.php
Строк: 20
<?php

namespace FakerProvider;

class 
Uuid extends Base
{
    
/**
     * Generate name based md5 UUID (version 3).
     * @example '7e57d004-2b97-0e7a-b45f-5387367791cd'
     */
    
public static function uuid()
    {
        
// fix for compatibility with 32bit architecture; seed range restricted to 62bit
        
$seed mt_rand(02147483647) . '#' mt_rand(02147483647);

        
// Hash the seed and convert to a byte array
        
$val md5($seedtrue);
        
$byte array_values(unpack('C16'$val));

        
// extract fields from byte array
        
$tLo = ($byte[0] << 24) | ($byte[1] << 16) | ($byte[2] << 8) | $byte[3];
        
$tMi = ($byte[4] << 8) | $byte[5];
        
$tHi = ($byte[6] << 8) | $byte[7];
        
$csLo $byte[9];
        
$csHi $byte[8] & 0x3f | (<< 7);

        
// correct byte order for big edian architecture
        
if (pack('L'0x6162797A) == pack('N'0x6162797A)) {
            
$tLo = (($tLo 0x000000ff) << 24) | (($tLo 0x0000ff00) << 8)
                | ((
$tLo 0x00ff0000) >> 8) | (($tLo 0xff000000) >> 24);
            
$tMi = (($tMi 0x00ff) << 8) | (($tMi 0xff00) >> 8);
            
$tHi = (($tHi 0x00ff) << 8) | (($tHi 0xff00) >> 8);
        }

        
// apply version number
        
$tHi &= 0x0fff;
        
$tHi |= (<< 12);

        
// cast to string
        
$uuid sprintf(
            
'%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x',
            
$tLo,
            
$tMi,
            
$tHi,
            
$csHi,
            
$csLo,
            
$byte[10],
            
$byte[11],
            
$byte[12],
            
$byte[13],
            
$byte[14],
            
$byte[15]
        );

        return 
$uuid;
    }
}
Онлайн: 1
Реклама