Just to note this function is fairly slow, and can bring your script to a crawl if it is in a loop. Strangely if you run it as uniqid('', true) it runs much more quickly
(PHP 4, PHP 5, PHP 7, PHP 8)
uniqid — Zamana dayalı kimlik dizgesi üretir
Mikrosaniye cinsinden geçerli zamana dayalı olarak, belirtilen
önek
ve isteğe bağlı olarak rastgele üretilen bir
değerle eşsiz bir kimlik dizgesi üretir.
Bu işlev kriptografik olarak güvenilir değerler üretmez ve kriptografik amaçlarla veya döndürülen değerlerin tahmin edilemez olmasını gerektiren amaçlarla kullanılmamalıdır.
Kriptografik olarak güvenilir rastgelelik gerekliyse Random\Randomizer sınıfı Random\Engine\Secure motoru ile kullanılabilir. Basit kullanım durumlarında random_int() ve random_bytes() işlevleri, işletim sisteminin CSPRNG’i tarafından desteklenen kullanışlı ve güvenli bir arayüz sağlar.
Bu işlev, dönüş değerinin benzersizliğini garanti etmez. Çoğu sistemde
sistem saati NTP veya benzeriyle ayarlandığından, sistem zamanı sürekli
olarak değiştirilir. Bu nedenle, bu işlevin süreç/evre için benzersiz
bir kimlik döndürmemesi mümkündür. Benzersiz olma olasılığını artırmak
için döküntü_üret
bağımsız değişkeni kullanılır.
önek
Bu bağımsız değişken, farklı konaklar üzerinde aynı anda üretilen kimliklerin farklılaştırılmasında yararlı olabilir. (Bu durum, sistem saatinin NTP ile ayarlandığı durumlarda, saatin bir işlemle geriye alınması durumunda aynı konakta bile gerçekleşebilir.)
Boş bir önek
belirtildiğinde 13 karakterlik bir
dizge elde edilir. Eğer, döküntü_üret
bağımsız değişkeninde true
belirtilmişse üretilen dizge 23 karakter
uzunluğunda olur.
döküntü_üret
true
belirtildiği takdirde elde edilen dizgenin daha benzersiz olma
olasılığını artırmak için dizgenin sonuna (birleşik doğrusal benzeşimsel
üreteç kullanılarak) rasgele üretilmiş karakterler eklenir.
Sistem zamanına dayalı bir kimlik dizgesi döner.
Bu işlev dönen değerin eşsizliğini garanti etmez.
Örnek 1 - uniqid() örneği
<?php
$token = md5(uniqid());
/* 4b3403665fea6 benzeri bir kimlik */
printf("uniqid(): %s\r\n", uniqid());
/* Bir önek belirtilebilir, ikisi de geçerli:
*
* $uniqid = $önek . uniqid();
* $uniqid = uniqid($önek);
*/
printf("uniqid('php_'): %s\r\n", uniqid('php_'));
/* Cygwin gibi bazı sistemlerde gerektiği
* takdirde döküntü_üret'ilebilir.
* sonuç şöyle olabilir: 4b340550242239.64159797
*/
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>
Bilginize:
Bu işlevin Cygwin altında çalışması için
döküntü_üret
true
olmalıdır.
Just to note this function is fairly slow, and can bring your script to a crawl if it is in a loop. Strangely if you run it as uniqid('', true) it runs much more quickly