UNIQID function သည် PHP တွင်ပါ 0 င်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည်လက်ရှိအချိန်တွင်ထူးခြားသော ID ကိုဖန်တီးရန်အသုံးပြုသည်။ ၎င်း၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$prefix</span></span><span> = </span><span><span class="hljs-string">""</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$more_entropy</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
$ ရှေ့ဆက် - ထုတ်လုပ်ထားသောထူးခြားသော ID ကိုရှေ့ဆက်မည့် optional string parameter တစ်ခု။
$ more_entropy : Boolean Value, Generated ID ကိုပိုပြီးကျပန်းအက္ခရာများကိုထပ်မံဖြည့်ဆည်းပေးရန်, default မှ default မှ default ကိုပိုမို ရှုပ်ထွေး စေသည်။
Uniqid ထုတ်လုပ်သည့်နည်းလမ်းသည်အလွန်တိကျမှန်ကန်မှုရှိသော timestamp (microSeconds) ကိုအခြေခံသည်။ ထို့ကြောင့်ထုတ်လုပ်သော ID သည်များသောအားဖြင့်ထူးခြားသည်။ ဥပမာအားဖြင့် UNIQID () ကိုခေါ်ဆိုခြင်းသည် 5F5D5E5C8F1A7 နှင့်ဆင်တူလိမ့်မည်။
Uniqid သည် လက်ရှိအချိန်တွင် အခြေခံ. ထူးခြားသောတန်ဖိုးများကိုထုတ်ပေးသော်လည်းအလွန်လုံခြုံမှုမရှိပါ။ တနင်္ဂနွေနေ့ကို တစ်ချိန်တည်းတွင်အကြိမ်ပေါင်းများစွာဟုခေါ်ဆိုပါကအချိန်ကုန်လွန်လာသည်နှင့်အမျှ Generated ID သည်အတူတူပင်ဖြစ်လိမ့်မည်။ ထို့အပြင် UNIQID မှထုတ်လုပ်သော ID ကိုပုံမှန်အားဖြင့်ထုတ်လုပ်သော ID သည် timestamps ပေါ်တွင်အခြေခံသည်။ ထို့ကြောင့်တိုက်ခိုက်သူသည် timestamps ကြီးထွားလာသည့်အမှာစာကိုကြိုတင်ခန့်မှန်းနိုင်လျှင်,
MT_RAND သည် PHP တွင် Pseudo-DREMITION နံပါတ်မီးစက်ဖြစ်သည်။ Rand function ကိုနှင့်နှိုင်းယှဉ်လျှင် MT_RUD သည်ပိုမိုထိရောက်သောနှင့်အရည်အသွေးမြင့်သောကျပန်းနံပါတ်ကိုထုတ်လုပ်သည်။ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-title function_ invoke__">mt_rand</span></span><span>(</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$min</span></span><span> = PHP_INT_MIN, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$max</span></span><span> = PHP_INT_MAX): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>
$ min : ထုတ်လုပ်သောကျပန်းနံပါတ်၏နိမ့်ဆုံးတန်ဖိုး, default သည် php_int_min ဖြစ်သည်။
$ MAX - ထုတ်လုပ်သောကျပန်းနံပါတ်၏အများဆုံးတန်ဖိုး, default သည် php_int_max ဖြစ်သည်။
Mt_rand သည် Pseudo -ert ဖြစ်သည့်သတ်မှတ်ထားသောအကွာအဝေးအတွင်းကျပန်းကိန်းတစ်ခုသို့ပြန်ပို့သည်။ သို့သော်အထွေထွေကျပန်းနံပါတ်လိုအပ်ချက်များအတွက်လုံလောက်သည်။
Mt_rand သည်အလွန်အမင်းကျပန်းဖြစ်သော်လည်း၎င်းသည် Pseudo -er နှင့်ကျပန်းလုံခြုံသောကျပန်းနံပါတ်မဟုတ်ပါ။ အကယ်. ထုတ်လုပ်သော ID သည်လုံခြုံရေးမြင့်မားရန်လိုအပ်ပါက (ခန့်မှန်းခြင်းနှင့်တိုက်မိခြင်းတို့ကိုတားဆီးခြင်းကိုကာကွယ်ခြင်း) ဖြစ်ရန်လိုအပ်သည်ဆိုပါက၎င်းသည်လုံလောက်မှုမရှိပါ။
ထူးခြားသော ID များထုတ်လုပ်ခြင်း၏လုံခြုံရေးကိုတိုးတက်စေရန် Uniqid နှင့် Mt_rand တို့ကို အတူတကွအသုံးပြုနိုင်သည်။ ၎င်းသည်ထုတ်ပေးရန်အခက်အခဲများကိုပိုမိုကောင်းမွန်စေရန် Generate ID သည် timestamp ကိုကျပန်းဖြည့်ဆည်းပေးနိုင်သည်။
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">generateSecureId</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$prefix</span></span></span><span> = </span><span><span class="hljs-string">""</span></span><span>) {
</span><span><span class="hljs-comment">// ထူးခြားသောအချိန် -based ထုတ်လုပ်ရန် ID</span></span><span>
</span><span><span class="hljs-variable">$uniqid</span></span><span> = </span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>(</span><span><span class="hljs-variable">$prefix</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-comment">// တစ်ခုတည်း၌တည်၏ ID ကျပန်းနံပါတ်ဖြည့်စွက်</span></span><span>
</span><span><span class="hljs-variable">$randomNumber</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mt_rand</span></span><span>(</span><span><span class="hljs-number">100000</span></span><span>, </span><span><span class="hljs-number">999999</span></span><span>);
</span><span><span class="hljs-comment">// splicing အားဖြင့်ထုတ်လုပ်တဲ့ထူးခွားတဲ့ ID နှင့်ကျပန်းနံပါတ်များ</span></span><span>
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$uniqid</span></span><span> . </span><span><span class="hljs-variable">$randomNumber</span></span><span>;
}
</span></span>
<span><span><span class="hljs-variable">$secureId</span></span><span> = </span><span><span class="hljs-title function_ invoke__">generateSecureId</span></span><span>(</span><span><span class="hljs-string">"order_"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$secureId</span></span><span>;
</span></span>
output သည်ဤကဲ့သို့သောပုံကိုကြည့်ကောင်းနိုင်သည်။
<span><span>order_60d17e5c5f1b4.829278031116635204001234
</span></span>
အထက်ပါနည်းလမ်းတွင် Uniqid function သည်အချိန်အပေါ် အခြေခံ. ထူးခြားသောအပိုင်းကိုဖြစ်ပေါ်စေသည် ။ ပေါင်းစပ်ထားသော ID သည်ကြိုတင်ခန့်မှန်းရန် ပို. ခက်ခဲသည်။ ၎င်းသည် Timestamp ၏ထူးခြားမှုကိုသေချာစေသည်။
ကျပန်းတိုးမြှင့်ခြင်း - Timestamps အပေါ် အခြေခံ. Uniqid မှရရှိသော ID သည်အမိန့်အချို့ရှိပြီးတိုက်ခိုက်သူများကခန့်မှန်းနိုင်သည်။ MT_rand မှထုတ်လုပ်သောကျပန်းနံပါတ်များသည်ခန့်မှန်းရခက်သည်။
တိုက်မှုကိုတားဆီးပါ ။ IDIQID တစ်ခုတည်းကိုသုံးပါ, ID များထုတ်လုပ်ခြင်းအကြားကွာခြားချက်သည်အလွန်သေးငယ်သောအချိန်ကတိုက်မိမှုဖြစ်လိမ့်မည်။ Mt_rand ၏နိဒါန်းသည်ကျပန်းအချက်များကိုဖြည့်စွက်ပြီးတိုက်မှုဖြစ်နိုင်ခြေကိုထိထိရောက်ရောက်လျှော့ချသည်။
လုံခြုံရေးကိုတိုးတက်အောင်လုပ်ခြင်း - အချို့သောအခြေအနေများတွင် (ငွေပေးချေမှုစနစ်များ, သုံးစွဲသူစနစ်များ, အသုံးပြုသူစစ်ဆေးခြင်းစသဖြင့်) တွင် ID များတွင်အထိခိုက်မခံသောသတင်းအချက်အလက်များပါ 0 င်နိုင်သည်သို့မဟုတ်မှန်းဆခြင်းမှတားဆီးရန်လိုအပ်သည်။ အကယ်. သင်သည် UNIQID ကိုသာမှီခိုနေပါကလုံခြုံရေးအန္တရာယ်များရှိနိုင်ပါကလုံခြုံရေးအန္တရာယ်များရှိနိုင်သည် ။