Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: generowanie ID
Forum PHP.pl > Forum > PHP
acztery
w moim systemie generuje ID dla danych elementów kategorie, dokumenty pliki itp itd.

mam pytanie. w jaki sposób nadajecie ID automatycznie id zbazy odpada. trzeba wziąśc pod uwagę że id moga sie powtarzać dla roznych języków tzn jezeli sa 2 elementy o id 343343 to kazdy z nich ma inny jezyk. przy autonadawaniu kazde id bylo by inne...

mam taki kod co o nim myślicie czy jest odporny na powtórzenia..

  1. <?php
  2. function HexID ($hexdata)
  3. {
  4. $rawid = strtoupper(md5($hexdata));
  5. $workid = $rawid;
  6.  
  7. $byte = hexdec( substr($workid,12,2) );
  8. $byte = $byte & hexdec("0f");
  9. $byte = $byte | hexdec("40");
  10. $workid = substr_replace($workid, strtoupper(dechex($byte)), 12, 2);
  11.  
  12. $byte = hexdec( substr($workid,16,2) );
  13. $byte = $byte & hexdec("3f");
  14. $byte = $byte | hexdec("80");
  15. $workid = substr_replace($workid, strtoupper(dechex($byte)), 16, 2);
  16.  
  17. $rid .= User::getIdUserLoginActual();
  18. $rid .= substr($rawid, 0, 12);
  19. return $rid;
  20.  }
  21. ?>
nospor
Juz sam fakt, ze uzywasz md5(), teoretycznie nie daje ci 100% pewnosci ze nie bedziesz mial powtórzen. W praktyce pewnie się to nie zdarzy, ale to tylko "pewnie".... winksmiley.jpg
acztery
więc może jakies pomysły
MrMag
zwykle uzywam autonumerowania, ale raz musialem sie dostosowac i ID bylo generowane w taki sposob:

  1. <?php
  2. return md5(uniqid(rand(), true));
  3. ?>


czy to ma sens?smile.gif
acztery
nie ma sensu bo jak dany element bedzie mial wiecej niz 1 jezyl to nada rozne ID dla tych elementów.
MrMag
a nie mozesz wyciagac danych po jezyku? wtedy nie obchodza cie identyfikatory
acztery
nie moge. chyba zostane przy 1 wer.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.