PHP 8.4.2 Released!

uniqid

(PHP 4, PHP 5, PHP 7, PHP 8)

uniqidZamana dayalı kimlik dizgesi üretir

Açıklama

uniqid(string $önek = "", bool $döküntü_üret = false): string

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.

Dikkat

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.

Uyarı

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.

Bağımsız Değişkenler

ö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.

Dönen Değerler

Sistem zamanına dayalı bir kimlik dizgesi döner.

Uyarı

Bu işlev dönen değerin eşsizliğini garanti etmez.

Örnekler

Ö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));
?>

Notlar

Bilginize:

Bu işlevin Cygwin altında çalışması için döküntü_üret true olmalıdır.

Ayrıca Bakınız

add a note

User Contributed Notes 1 note

up
2
ken at smallboxsoftware
17 years ago
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
To Top