php method to achieve non-duplicate encoding: 1. Create a PHP sample file; 2. Use PHP to perform hexadecimal conversion; 3. Obtain the decimal number through the database and ensure that the number is unique.
#The operating environment of this article: Windows 7 system, PHP version 7.4, Dell G3 computer.
How to achieve non-duplicate encoding in php?
PHP implementation generates a unique number (36-digit non-repeating number):
When we want to number a huge data, and the number There are digit restrictions, such as a 5-digit license plate number, a 10-digit ID number, an order serial number, a short URL, etc. We can use hexadecimal to calculate a non-repeating number that meets the digits.
We use 0-Z (0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ) to represent values 0-35 respectively, such as the letter Z representing 35. In this case, I want to get a 5-digit number. The maximum amount of information is 36 raised to the fifth power, 36^5 = 60466176, that is, the maximum 5-digit number is equivalent to a decimal number: 60466176.
For the sake of demonstration in this article, we assume that a club issues a batch of 10-digit membership card numbers. The membership card number consists of a 3-digit city number, a 5-digit card number code, and a 2-digit check code. The city number is represented by the area code. For example, 755 represents Shenzhen. The 5-digit card number is composed of a 36-digit card number. The next two check codes are generated through a certain algorithm. The purpose of the check code is to verify the card number. legality. In this case, the 10-digit card number we generate is equivalent to a maximum of more than 60 million membership card numbers, and it is a unique card number that does not repeat.
PHP implementation
We use PHP to convert decimal to hexadecimal.
class Code { //密码字典 private $dic = array( 0=>'0', 1=>'1', 2=>'2', 3=>'3', 4=>'4', 5=>'5', 6=>'6', 7=>'7', 8=>'8', 9=>'9', 10=>'A', 11=>'B', 12=>'C', 13=>'D', 14=>'E', 15=>'F', 16=>'G', 17=>'H', 18=>'I',19=>'J', 20=>'K', 21=>'L', 22=>'M', 23=>'N', 24=>'O', 25=>'P', 26=>'Q', 27=>'R',28=>'S', 29=>'T', 30=>'U', 31=>'V', 32=>'W', 33=>'X', 34=>'Y', 35=>'Z' ); public function encodeID($int, $format=8) { $dics = $this->dic; $dnum = 36; //进制数 $arr = array (); $loop = true; while ($loop) { $arr[] = $dics[bcmod($int, $dnum)]; $int = bcp($int, $dnum, 0); if ($int == '0') { $loop = false; } } if (count($arr) dic; $dnum = 36; //进制数 //键值交换 $dedic = array_flip($dics); //去零 $id = ltrim($ids, $dics[0]); //反转 $id = strrev($id); $v = 0; for ($i = 0, $j = strlen($id); $i <p>We define the Code class, first define the password dictionary, that is, the values corresponding to 0-Z, the parameter $int in the method encodeID($int, $format) represents the number, and $format represents the length of digits, for example encodeID(123456789,5) means converting the number 123456789 into a 5-digit hexadecimal number, and the method decodeID($ids) is used to convert the hexadecimal number into a decimal number. <br><br>We can generate the card number like this: </p><pre class="brush:php;toolbar:false">$code = new Code(); $card_no = $code->encodeID(888888,5);
As above, we can get a 5-digit card number, which actually represents the membership number of the card number 888888 (6 eights), and After actual conversion, it is a 5-digit number: 0J1VC. Next, we add the city number and check code. The city number has been defined, and the check code is obtained through a certain algorithm. In this example, we use a simple algorithm: add the first three city numbers and the five The card number is md5 encrypted, and then the first two digits of the md5 value are taken as the check code, so that the two-digit check code after the number is obtained.
$card_pre = '755'; $card_vc = substr(md5($card_pre.$card_no),0,2); $card_vc = strtoupper($card_vc); echo $card_pre.$card_no.$card_vc;
In actual application, the decimal number can be obtained through the database to ensure that the number is unique, and then the above codes are combined to finally generate a 10-digit non-duplicate membership card number.
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to achieve non-duplicate encoding in php. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Atom editor mac version download
The most popular open source editor

SublimeText3 Linux new version
SublimeText3 Linux latest version

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 English version
Recommended: Win version, supports code prompts!
