Созонов Алексей

Веб-разработчик

4 способа сгенерировать уникальный id PHP

09.08.2015

1. Использовать функцию uniqid()

<?php
// создаем уникальный id с префиксом 'about'
$a = uniqid(about);
echo $a;
echo "<br>";

// создаем longer уникальный id с префиксом 'about'
$b = uniqid (about, true);
echo $b;
echo "<br>";

// создаем уникальный id с рандомным префиксом
$c = uniqid (rand(), true);
echo $c;
echo "<br>";

// сохраняем в базу данных
$md5c = md5($c);
echo $md5c;
echo "<br>";
?>

2. Используем текущее время + ip

<?php

$stamp = date("Ymdhis");
$ip = $_SERVER['REMOTE_ADDR'];
$orderid = "$stamp-$ip";
$orderid = str_replace(".", "", "$orderid");
echo($orderid);
echo "<br>";

?>

3. Используем уникальный id произвольной длины

<?php

// задаем длину
$random_id_length = 10; 

// генерируем id и зашифровываем его
$rnd_id = crypt(uniqid(rand(),1)); 

// убираем слэши
$rnd_id = strip_tags(stripslashes($rnd_id)); 

// убираем точки и переворачиваем строку задом наперед
$rnd_id = str_replace(".","",$rnd_id); 
$rnd_id = strrev(str_replace("/","",$rnd_id)); 

// берем первые 10 значений
$rnd_id = substr($rnd_id,0,$random_id_length); 

echo "Random Id: $rnd_id" ;
echo "<br>";

?>

4. Генерируем XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX подобный id

<?php
function NewGuid() { 
    $s = strtoupper(md5(uniqid(rand(),true))); 
    $guidText = 
        substr($s,0,8) . '-' . 
        substr($s,8,4) . '-' . 
        substr($s,12,4). '-' . 
        substr($s,16,4). '-' . 
        substr($s,20); 
    return $guidText;
}

$Guid = NewGuid();
echo $Guid;
echo "<br>";

?>
#PHP