Heim >Backend-Entwicklung >PHP-Problem >So konvertieren Sie numerische und String-IDs in PHP ineinander
So implementieren Sie die gegenseitige Konvertierung zwischen PHP-Zahlen und String-IDs: Öffnen Sie zuerst die entsprechende PHP-Codedatei und verwenden Sie dann „alphaID(9007199254740989);“, um die gegenseitige Konvertierung zwischen Zahlen und String-IDs zu realisieren.
Empfohlen: „PHP-Video-Tutorial“
Funktion zur gegenseitigen Konvertierung von PHP-Nummern und String-IDs (ähnlich der Youku-ID)
Ich weiß nicht, ob Sie es bemerkt haben, ähnlich wie Youku, Tencent Video und andere Videos Der Link scheint diesem zu ähneln
Der Code lautet wie folgt:
http://v.youku.com/v_show/id_XNjA5MjE5OTM2.html
Achten Sie auf den Teil id_xxx. Sie können ihn nicht verstehen, aber Sie können nicht leugnen, dass dies die ID ist Dies ist nicht der Fall. Ein ausländischer Experte hat bereits 2009 einen Code für PHP geschrieben. Die Generierungsmethode /Python/Javascript/Java/SQL zeigt, wie veraltet ich jetzt bin, in der Hoffnung, dass der Geist des Teilens anhält für immer.
Der Code lautet wie folgt:
<?php /** * @author Kevin van Zonneveld <kevin@vanzonneveld.net> * @author Simon Franz * @author Deadfish * @copyright 2008 Kevin van Zonneveld (http://kevin.vanzonneveld.net) * @license http://www.opensource.org/licenses/bsd-license.php New BSD Licence * @version SVN: Release: $Id: alphaID.inc.php 344 2009-06-10 17:43:59Z kevin $ * @link http://kevin.vanzonneveld.net/ * * @param mixed $in String or long input to translate * @param boolean $to_num Reverses translation when true * @param mixed $pad_up Number or boolean padds the result up to a specified length * @param string $passKey Supplying a password makes it harder to calculate the original ID * * @return mixed string or long */ function alphaID($in, $to_num = false, $pad_up = false, $passKey = null) { $index = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; if ($passKey !== null) { // Although this function's purpose is to just make the // ID short - and not so much secure, // with this patch by Simon Franz (http://blog.snaky.org/) // you can optionally supply a password to make it harder // to calculate the corresponding numeric ID for ($n = 0; $n<strlen($index); $n++) { $i[] = substr( $index,$n ,1); } $passhash = hash('sha256',$passKey); $passhash = (strlen($passhash) < strlen($index)) ? hash('sha512',$passKey) : $passhash; for ($n=0; $n < strlen($index); $n++) { $p[] = substr($passhash, $n ,1); } array_multisort($p, SORT_DESC, $i); $index = implode($i); } $base = strlen($index); if ($to_num) { // Digital number < 0) { $out -= pow($base, $pad_up); } } $out = sprintf('%F', $out); $out = substr($out, 0, strpos($out, '.')); } else { // Digital number -->> alphabet letter code if (is_numeric($pad_up)) { $pad_up--; if ($pad_up > 0) { $in += pow($base, $pad_up); } } $out = ""; for ($t = floor(log($in, $base)); $t >= 0; $t--) { $bcp = bcpow($base, $t); $a = floor($in / $bcp) % $base; $out = $out . substr($index, $a, 1); $in = $in - ($a * $bcp); } $out = strrev($out); // reverse } return $out; }
Anwendungsbeispiel
Der Code lautet wie folgt:
<?php alphaID(9007199254740989);
Das Ausführungsergebnis wird „fE2XnNGpF“ zurückgegeben, wir können es uns als Verschlüsselung und als Anti-Entschlüsselung vorstellen
The Der Code lautet wie folgt:
<?php alphaID('fE2XnNGpF', true);
Dann in die reelle Zahl „9007199254740989“ umwandeln. Die Methode kann auch die Verschlüsselung mithilfe eines Schlüssels unterstützen, sodass andere Ihre echte ID nicht entschlüsseln können.
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie numerische und String-IDs in PHP ineinander. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!