Einmalige numerische IDs: mktime() nicht genug (für AJAX)

joobie

Mitglied
Hi zusammen,

Ich füge ein PHP-Skript mehrmals hintereinander mit AJAX in eine bestehende Seite ein, und muss jeder Instanz eine einmalige ID zuweisen, die numerisch ist (nicht alpha-numerisch), und aufeinanderfolgend (wobei die Größe des Inkrements beliebig sein kann, solange es größer als das vorherige ist). Diese ID kann in dem externen, einzufügenden Skript generiert werden.

mktime() ist nicht präzise genug, da der Server-Request weniger als eine Sekunde dauert und mehrere Elemente die gleiche ID besitzen.

uniqid() produziert alpha-numerische IDs basierend auf mktime() (soweit ich weiß), aber wenn ich die alpha-Charaktere per preg_match herausfiltere, bin ich nicht sicher ob der verbleibende numerische Teil aufeinanderfolgend ist.

Die Frage ist also: gibt es eine Möglichkeit an Mirkosekunden zu gelangen, und diese irgendwie mit mktime() zu verbinden? Oder irgendeine andere Möglichkeit, einmalige und aufeinanderfolgende IDs zu produzieren, wenn der Request innerhalb weniger Mikrosekunden passiert.
 
Sorry, aber bist du sicher, dass du nicht [phpf]microtime[/phpf] meinst? Denn [phpf]mktime[/phpf] ist wirklich nicht dafür geeignet...

Ansonsten bastel dir doch einfach eine kleine eigene Funktion... [phpf]mt_rand[/phpf] bietet sich dafür z. B. an.
 
Ja, ich habe es inzwischen mit microtime() gemacht :) Ich hatte schon mktime() benutzt zu Anfang.

Es sieht momentan gut aus mit microtime() - der Puffer zwischen den einzelnen Instanzen ist mindestens 5 - 6. Ich hoffe dass das ausreichen wird, obwohl ich schon lieber einen größeren Spielraum hätte.

Falls sich herausstellt dass manche Server doch zu schnell für microtime() sind, werde ich mir definitiv eine Funktion überlegen müssen. Danke dafür und für den mt_rand() Tipp!
 
Zurück