PHPのuniqid関数を使用して一意のIDを生成する
一意の ID を生成するアプリケーション シナリオは、一時キャッシュ ファイル名、一時変数、一時セキュリティ コードなど、非常に一般的です。uniqid() 関数は、マイクロ秒単位の現在時刻に基づいて一意の ID を生成します。一意の ID の生成はマイクロ秒の時間に関連付けられているため、ID の一意性は非常に信頼できます。
生成された一意の ID によって返される文字列は、デフォルトでは 13 文字列の長さです。一意の ID のプレフィックスが定義されていない場合、md5() 関数と組み合わせると、最大 23 個の文字列長を返すことができます。この生成された ID の最大の利点は、特にデータベースに保存する必要がある一部の値についてソートできることです。
1. 関数プロトタイプ
string uniqid ( [string prefix [, bool more_entropy]] )
ログイン後にコピー
は、一意のIDのプレフィックスと長さを定義できます
<?php echo uniqid(); ?>
ログイン後にコピー
<?php echo md5(uniqid()); ?>
ログイン後にコピー
<?php echo uniqid(); echo uniqid(); echo uniqid(); ?>
ログイン後にコピー
4bfd0e3753981
4bfd0e3753983
生成された結果から判断すると、一意の ID は並べ替え可能です。
uniqid() 関数を使用して一意の ID を生成すると、一時的な ID と永続的な一意の ID (ストレージ データベース) の両方を生成できます。
ps: php で一意の ID を生成するためのいくつかの解決策
このメソッドは一定の確率で繰り返されます2. PHP組み込み関数uniqid() uniqid()関数はマイクロ秒単位の現在時刻に基づいて一意のIDを生成します という一文があります。 w3school リファレンス マニュアル: 「システム時間に基づいているため、この関数によって生成される ID は最適ではありません。完全に一意の ID を生成するには、md5() 関数を使用してください。」 次のメソッドは同様の結果を返します: 5DDB650F-4389-F4A9-A100-501EF1348872
function uuid() { if (function_exists ( 'com_create_guid' )) { return com_create_guid (); } else { mt_srand ( ( double ) microtime () * 10000 ); //optional for php 4.2.0 and up.随便数播种,4.2.0以后不需要了。 $charid = strtoupper ( md5 ( uniqid ( rand (), true ) ) ); //根据当前时间(微秒计)生成唯一id. $hyphen = chr ( 45 ); // "-" $uuid = '' . //chr(123)// "{" substr ( $charid, 0, 8 ) . $hyphen . substr ( $charid, 8, 4 ) . $hyphen . substr ( $charid, 12, 4 ) . $hyphen . substr ( $charid, 16, 4 ) . $hyphen . substr ( $charid, 20, 12 ); //.chr(125);// "}" return $uuid; } }
ログイン後にコピー
public function create_guid($namespace = '') { static $guid = ''; $uid = uniqid("", true); $data = $namespace; $data .= $_SERVER['REQUEST_TIME']; $data .= $_SERVER['HTTP_USER_AGENT']; $data .= $_SERVER['LOCAL_ADDR']; $data .= $_SERVER['LOCAL_PORT']; $data .= $_SERVER['REMOTE_ADDR']; $data .= $_SERVER['REMOTE_PORT']; $hash = strtoupper(hash('ripemd128', $uid . $guid . md5($data))); $guid = '{' . substr($hash, 0, 8) . '-' . substr($hash, 8, 4) . '-' . substr($hash, 12, 4) . '-' . substr($hash, 16, 4) . '-' . substr($hash, 20, 12) . '}'; return $guid; }
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事
レポ:チームメイトを復活させる方法
1 か月前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
2週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
1 か月前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
4週間前
By DDD
R.E.P.O.ファイルの保存場所:それはどこにあり、それを保護する方法は?
4週間前
By DDD

ホットツール

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

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

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

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

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

ホットトピック
Gmailメールのログイン入り口はどこですか?
7364
15


Java チュートリアル
1628
14


CakePHP チュートリアル
1353
52


Laravel チュートリアル
1265
25


PHP チュートリアル
1214
29

