您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)使用PHP怎么生成一個(gè)唯一的RequestID類,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
RequestID.class.php
<?php /** * PHP生成唯一RequestID類 * Author: fdipzone * Version: 1.0 * * Description: * PHP實(shí)現(xiàn)生成唯一RequestID類,使用session_create_id()與uniqid()方法實(shí)現(xiàn),保證唯一性。 * * Func: * public generate 生成唯一請求id * private format 格式化請求id */ class RequestID{ // class start /** * 生成唯一請求id * @return String */ public static function generate(){ // 使用session_create_id()方法創(chuàng)建前綴 $prefix = session_create_id(date('YmdHis')); // 使用uniqid()方法創(chuàng)建唯一id $request_id = strtoupper(md5(uniqid($prefix, true))); // 格式化請求id return self::format($request_id); } /** * 格式化請求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); // 根據(jù)設(shè)定格式化 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 ?>
demo:
<?php require 'RequestID.class.php'; // 生成10個(gè)請求id for($i=0; $i<10; $i++){ echo RequestID::generate().PHP_EOL; } ?>
輸出:
16532925-4502-CDAD-23A2-463FC7B5803A
500B77AD-CD24-0DDA-9E6E-2FDF2DD7CA94
813143D0-958F-9F56-E04F-679598594452
E5EE1B0B-E0D6-3E60-D831-462C5A262FCE
79E714B5-A37F-4B5E-4EDE-83E18391EBF9
E1C440AB-FC2C-AC74-E79A-016FD59D9651
AE483861-1040-BE8D-E523-D7638D0F0D35
BBD7A03A-36C9-24B7-C453-FB1DDD6E201E
BF62C3E6-9C5F-22CB-668D-381863B35268
E97E1F44-F048-962A-5BF7-1113727551B1
關(guān)于使用PHP怎么生成一個(gè)唯一的RequestID類就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。