Bakılmaksızın rasgele sayı üreteci ne kadar iyi - rastgele değerler benzersiz olacağını sizin önermesiyle birçok kusurları vardır. Ayrıca, rasgele sayı üreteci daha iyi, o kadar uzun sonuçlarını hesaplamak için alır.
Yinelenen gönderimler tespit added parası olsun bu şekilde - bu veri dosyası bir karma kullanmak daha iyi olmaz.
Çiftleri tespit known olmayan bir konu olacaksa, o zaman ben yine de bu yaklaşımı tavsiye ama tespit çarpışmalar dayalı çıktı değiştirmek (ama Lo'oris tarafından önerilen çok daha ucuz bir hesaplama yöntemi kullanılarak) ediyorum örneğin
$candidate_name=generate_hash_of_file($input_file);
$offset=0;
while ((file_exists($candidate_name . strrev($offset) && ($offset<50)) {
$offset++;
}
if ($offset<50) {
rename($input_file, $candidate_name . strrev($offset));
} else {
print "Congratulations - you've got the biggest storage network in the world by far!";
}
Bu size bir SHA1 hash kullanarak yaklaşık 2 * 25 ^ 63 dosyaları saklamak için kapasitesini verecek.
Karma oluşturmak için nasıl gibi, PHP içine tüm dosya okuma (bunu karma tek bir dizeye hepsini okumaya çalışın özellikle) yavaş olabilir. Çoğu Linux / Posix'e / Unix sistemleri çok verimli bir akışından bir karma oluşturacak 'md5sum' gibi araçlar ile birlikte gelir.
C.