Heim >Backend-Entwicklung >PHP-Tutorial >So erstellen Sie eine einzigartige 64 -Bit -Ganzzahl aus String

So erstellen Sie eine einzigartige 64 -Bit -Ganzzahl aus String

William Shakespeare
William ShakespeareOriginal
2025-02-20 12:15:10367Durchsuche

Die integrierte

-Be-Funktion von PHP erzeugt 32-Charakter-Hexadezimalzeichenfolgen, die zum Erstellen von Fingerabdrücken nützlich sind. Die Erzeugung einzigartiger 64-Bit-Ganzzahl-Fingerabdrücke aus URLs erfordert jedoch einen anderen Ansatz, insbesondere bei der Behandlung der Datenbankindexierungseffizienz. Dieser Artikel beschreibt eine Lösung zum Erstellen dieser eindeutigen IDs, wobei der Schwerpunkt auf URL-Heiligsprechung und effizientes 64-Bit-Ganzzahl-Konvertierung liegt. md5()

How to Create a Unique 64bit Integer from String

Schlüsselüberlegungen:

  • URL -Heiligsprechung: verschiedene URLs können auf dieselbe Seite hinweisen (z. B. Variationen der Abfrageparameter). Die Kanonisation erzeugt eine konsistente Darstellung, die sicherstellt, dass identische Seiten identische IDs aufweisen. Dies beinhaltet das Entfernen des Protokolls und das Ignorieren von Fragmenten nach dem Hashmark (#).
  • 64-Bit Integer Conversion: Phps inhärente Einschränkungen mit 64-Bit-Ganzzahlen erfordern die Verwendung der GMP-Bibliothek zur zuverlässigen Konvertierung.

Die Herausforderung: effizient zuweisen eindeutige 64-Bit-Ganzzahl-IDs für die dynamische Widget-Entwicklung, die ineffiziente textbasierte Indexierung von URLs vermeiden.

Lösungsaufschlüsselung:

  1. URL -Heiligsprechung: Die bereitgestellte -Funktion standardisiert URLs. Es senkt die URL, extrahiert den Host und den Pfad und verarbeitet die Abfragezeichenfolge. Die canonizeUrl() -Funktion sortiert Abfrageparameter lexikografisch für Konsistenz, Handhabung doppelter Parameter und Anwendung von RFC 3986-konforme URL-Codierung. canonizeQueryString()

  2. String in INT64-Konvertierung: Die -Funktion verwendet die GMP-Bibliothek, um die kanonisierte URL in eine 64-Bit-Ganzzahl umzuwandeln. Es dauert die ersten 16 Zeichen des MD5 -Hashs (zur Effizienz) und interpretiert sie als Hexadezimalzahl. get64BitHash()

  3. Kombinierte Funktion: Die -Funktion kombiniert die obigen Schritte und liefert eine vollständige Lösung: Kanonisieren Sie die URL und konvertieren Sie sie dann in einen 64-Bit-Ganzzahl-Hash. urlTo64BitHash()

Code -Beispiele:

(die Codebeispiele für

,

, canonizeUrl() und canonizeQueryString() bleiben gleich wie in der ursprünglichen Eingabe.) urlencode_rfc3986() get64BitHash()

Leistung und Kollisionstest:

Tests mit 10.000.000 Iterationen zeigten eine durchschnittliche Erzeugungszeit von 460 Millisekunden pro 100.000 URLs und es wurden keine Kollisionen festgestellt (unter Verwendung von Intel i3, Windows 7 64-Bit, Php 5.3). 🎜>

Schlussfolgerung: Dieser Ansatz bietet eine robuste und effiziente Methode zur Generierung von eindeutigen 64-Bit-Ganzzahl-IDs aus URLs, die für Anwendungen geeignet sind, die eine effiziente Indexierung der Datenbank und die Erzeugung der eindeutigen Kennung erfordern. Die Verwendung von GMP überwindet die Einschränkungen von PHP und die URL -Heiligsprechung sorgt für die Konsistenz.

häufig gestellte Fragen (FAQs): (Der FAQS -Abschnitt bleibt weitgehend mit dem ursprünglichen Eingang mit geringfügigen Formulierungsanpassungen für Klarheit und Konsistenz.)

Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine einzigartige 64 -Bit -Ganzzahl aus String. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn