今天小編給大家分享一下php不重復唯一值如何實現的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
創新互聯建站是一家專注于網站設計制作、網站設計與策劃設計,運城網站建設哪家好?創新互聯建站做網站,專注于網站建設10多年,網設計領域的專業建站公司;建站業務涵蓋:運城等地區。運城做網站價格咨詢:18982081108
php實現不重復唯一值的方法:1、可以使用“uniqid()”函數生成不重復的唯一標識符;2、可以使用“session_create_id()”函數生成唯一標識符;3、可以使用“session_create_id()”函數生成唯一標識符。
php不重復唯一值怎么實現?
PHP 生成不重復唯一標識 session_create_id()
PHP uniqid()函數可用于生成不重復的唯一標識符,該函數基于微秒級當前時間戳。在高并發或者間隔時長極短(如循環代碼)的情況下,會出現大量重復數據。即使使用了第二個參數,也會重復。
使用session_create_id()函數生成唯一標識符,經過實際測試發現,即使循環調用session_create_id()一億次,都沒有出現過重復。
php session_create_id()是php 7.1新增的函數,用來生成session id,低版本無法使用。
PHP uniqid()函數可用于生成不重復的唯一標識符,該函數基于微秒級當前時間戳。在高并發或者間隔時長極短(如循環代碼)的情況下,會出現大量重復數據。即使使用了第二個參數,也會重復。
使用session_create_id()函數生成唯一標識符,經過實際測試發現,即使循環調用session_create_id()一億次,都沒有出現過重復。
php session_create_id()是php 7.1新增的函數,用來生成session id,低版本無法使用。
<?php /** * PHP生成唯一RequestID類 * Version: 1.0 */ class RequestID{ // class start /** * 生成唯一請求id * session_create_id 需要php7.1以上版本 * @return String */ public static function generateV7(){ // 使用session_create_id()方法創建前綴 $prefix = session_create_id(date('YmdHis')); // 使用uniqid()方法創建唯一id $request_id = strtoupper(md5(uniqid($prefix, true))); // 格式化請求id return self::format($request_id); } public static function generate(){ // 創建前綴 $prefix = self::create_guid(date('YmdHis')); // 使用uniqid()方法創建唯一id $request_id = strtoupper(md5(uniqid($prefix, true))); // 格式化請求id return self::format($request_id); } public static function create_guid($namespace = '') { static $guid = ''; $uid = uniqid("", true); $data = $namespace; $data .= $_SERVER['REQUEST_TIME']; $data .= $_SERVER['HTTP_USER_AGENT']; $data .= isset($_SERVER['LOCAL_ADDR'])?$_SERVER['LOCAL_ADDR']:$_SERVER['SERVER_ADDR']; $data .= isset($_SERVER['LOCAL_PORT'])?$_SERVER['LOCAL_PORT']:$_SERVER['SERVER_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; } /** * 格式化請求id * @param String $request_id 請求id * @param Array $format 格式 * @return String */ private static function format($request_id, $format='8,4,4,4,12'){ $tmp = array(); $offset = 0; $cut = explode(',', $format); // 根據設定格式化 if($cut){ foreach($cut as $v){ $tmp[] = substr($request_id, $offset, $v); $offset += $v; } } // 加入剩余部分 if($offset<strlen($request_id)){ $tmp[] = substr($request_id, $offset); } return implode('-', $tmp); } } // class end // 生成10個請求id for($i=0; $i<10; $i++){ echo RequestID::generate().PHP_EOL.'<br>'; }
php的框架:
1、Laravel,Laravel是一款免費并且開源的PHP應用框架。
2、Phalcon,Phalcon是運行速度最快的一個PHP框架。
3、Symfony,Symfony是一款為Web項目準備的PHP框架。
4、Yii,Yii是一款快速、安全和專業的PHP框架。
5、CodeIgniter,CodeIgniter是一款非常敏捷的開源PHP框架。
6、CakePHP,CakePHP是一款老牌的PHP框架。
7、Kohana,Kohana是一款敏捷但是功能強大的PHP框架。
以上就是“php不重復唯一值如何實現”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注創新互聯行業資訊頻道。
當前名稱:php不重復唯一值如何實現
當前網址:http://m.newbst.com/article36/jicipg.html
成都網站建設公司_創新互聯,為您提供品牌網站設計、外貿建站、域名注冊、建站公司、商城網站、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯