Hexdec ist eine PHP-integrierte Funktion zum Umwandeln von hexadezimalen Saiten in Dezimalzahlen. Zum Beispiel:
<?php
echo hexdec('1a'); // Ausgabe 26
?>
Es ist jedoch zu beachten, dass Hexdec nur Zahlen und Hexadezimalzeichen in Saiten (0-9, AF) verarbeiten kann. Wenn die Eingabe nicht -hexadezimale Zeichen (z. B. kurze horizontale Linien in UUID - ) enthält, muss zuerst die Zeichenfolge gereinigt werden.
Uuid ist normalerweise wie:
550e8400-e29b-41d4-a716-446655440000
Wenn wir HexDEC verwenden möchten, um zu verarbeiten, entfernen wir zunächst die kurze horizontale Linie in der Mitte:
<?php
$uuid = '550e8400-e29b-41d4-a716-446655440000';
$cleanUuid = str_replace('-', '', $uuid);
echo hexdec($cleanUuid);
?>
Hinweis: Da die UUID länger ist (32 hexadezimale Zeichen), kann ihr Dezimalwert den Bereich der PHP -Ganzzahl überschreiten, was dazu führt, dass HexDEC nur einige korrekte Ergebnisse zurückgibt.
PHP-Ganzzahlen unterstützen bis zu 64-Bit lange Zahlen auf 64-Bit-Systemen. Bei 32-Byte-Uuiden überflutet es oft über den Überfluss . Lösung:
Verwenden Sie BC Math oder GMP -Erweiterung <br> Diese Erweiterungen unterstützen digitale Berechnungen jeglicher Länge.
<?php
$uuid = '550e8400-e29b-41d4-a716-446655440000';
$cleanUuid = str_replace('-', '', $uuid);
function bcHexDec($hex) {
$dec = '0';
$len = strlen($hex);
for ($i = 0; $i < $len; $i++) {
$current = hexdec($hex[$i]);
$dec = bcmul($dec, '16');
$dec = bcadd($dec, $current);
}
return $dec;
}
echo bcHexDec($cleanUuid);
?>
Es werden nur einige Felder von UUID konvertiert <br> Konvertieren Sie beispielsweise nur die ersten 8 Zeichen der UUID:
<?php
$uuid = '550e8400-e29b-41d4-a716-446655440000';
$part = substr(str_replace('-', '', $uuid), 0, 8);
echo hexdec($part);
?>
Dies gibt Ihnen eine kleinere Zahl für die Indexierung oder einen schnellen Vergleich.
Reinigen Sie zuerst die kurzen horizontalen Linien in der UUID, um sicherzustellen, dass die an HexDec übergebene Saite nur Hex -Zeichen enthält.
Um zu vermeiden, dass HexDEC zu lange Uuids konvertiert wird, wird empfohlen, BCMath oder GMP zur Implementierung von Umwandlungen mit großzahlen zu verwenden.
Entsprechend den Anforderungen extrahieren Sie einen Teil der UUID für die Umwandlung und verringern Sie den numerischen Bereich.
In Kombination mit dem Datenbankindexdesign werden die uUID -konvertierten Werte zum Sortieren und Schnellsuche verwendet.
Wenn Ihr Projekt über einen UUID -Parameter verfügt und es schnell in die digitale Verarbeitung umwandeln möchte, können Sie es mit PHPs $ _get kombinieren:
<?php
if (isset($_GET['uuid'])) {
$uuid = $_GET['uuid'];
$cleanUuid = str_replace('-', '', $uuid);
echo hexdec(substr($cleanUuid, 0, 8)); // Nur vor der Umstellung8Bisschen
}
?>
Beispielzugang:
https://gitbox.net/project/page.php?uuid=550e8400-e29b-41d4-a716-446655440000