PHPに基づいて固有の会員カード番号を生成
この記事では主にphpに基づいた固有の会員カード番号の生成について紹介します。興味のある方は参考にしていただければ幸いです。
データベースにクエリを実行せずに、ログインした各メンバーは、数字と文字の一意の組み合わせでメンバーシップ カード番号を生成します。
#レンダリングは次のとおりです。
#この記事のデモンストレーションの目的で、クラブが発行したものと仮定します。 10 桁の会員カード番号のバッチ。会員カード番号は、3 桁の都市番号、5 桁のカード番号、および 2 桁のチェック コードで構成されます。都市番号は市外局番で表されます。たとえば、755 は深センを表します。次の 2 つのチェック コードは、特定のアルゴリズムによって生成されます。コードはカード番号が正当であることを確認するためのものです。この場合、当社が生成する10桁のカード番号は最大6,000万件を超える会員カード番号に相当し、重複のない唯一のカード番号となります。
PHP
PHP を使用して 10 進数を 16 進数に変換します。
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) < $format) $arr = array_pad($arr, $format, $dics[0]); return implode('', array_reverse($arr)); } public function decodeID($ids) { $dics = $this->dic; $dnum = 36; //进制数 //键值交换 $dedic = array_flip($dics); //去零 $id = ltrim($ids, $dics[0]); //反转 $id = strrev($id); $v = 0; for ($i = 0, $j = strlen($id); $i < $j; $i++) { $v = bcadd(bcmul($dedic[$id { $i } ], bcpow($dnum, $i, 0), 0), $v, 0); } return $v; } }
Code クラスを定義し、最初にパスワード辞書、つまり 0 ~ Z に対応する値を定義します。encodeID($int, $format) メソッドのパラメータ $int は数値を表します。 、$format は桁の長さを表します。たとえば、encodeID(123456789,5) は数値 123456789 を 5 桁の 16 進数に変換することを意味し、メソッド decodeID($ids) は 16 進数を 10 進数に変換するために使用されます。 。
次のようにカード番号を生成できます:
$code = new Code(); $card_no = $code->encodeID(888888,5);
上記のように、実際にはカード番号 888888 (6) を表す 5 桁のカード番号を取得できます。 8 ) 会員番号。実際の変換は 5 桁の番号: 0J1VC です。
次に、都市番号とチェック コードを追加します。都市番号は定義されており、チェック コードは特定のアルゴリズムを通じて取得されます。この例では、最初の 3 つを追加します。都市番号と5桁のカード番号をmd5暗号化し、md5値の最初の2桁をチェックコードとして、番号に続く2桁のチェックコードを取得します。
$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;
実際のアプリケーションでは、番号が一意であることを確認するためにデータベースから 10 進数を取得し、上記のコードを組み合わせて最終的に 10 桁の重複しない会員カード番号を生成します。
要約: 以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。
関連する推奨事項:
PHP は、宝くじの確率を計算するためのアルゴリズムを実装します。
php は、定義と定義を実装します。 Redis キャッシュ クラスの PHP を使用して IMAP
に基づいてメールを受信する方法の詳細な説明以上がPHPに基づいて固有の会員カード番号を生成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
