လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> [uniqid နှင့် mt_rand ကိုအသုံးပြုနည်း။

[uniqid နှင့် mt_rand ကိုအသုံးပြုနည်း။

gitbox 2025-07-26

uniqid function ကို

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 function ကို

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 သည်လုံခြုံရေးမြင့်မားရန်လိုအပ်ပါက (ခန့်မှန်းခြင်းနှင့်တိုက်မိခြင်းတို့ကိုတားဆီးခြင်းကိုကာကွယ်ခြင်း) ဖြစ်ရန်လိုအပ်သည်ဆိုပါက၎င်းသည်လုံလောက်မှုမရှိပါ။


Uniqid နှင့် Mt_rand ကို မည်သို့အသုံးပြုရမည်နည်း။

ထူးခြားသော 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>

နမူနာ output ကို:

 <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 ၏ထူးခြားမှုကိုသေချာစေသည်။


ကျွန်ုပ်တို့အဘယ်ကြောင့် Uniqid နှင့် Mt_rand ပေါင်းစပ်လိုသနည်း။

  1. ကျပန်းတိုးမြှင့်ခြင်း - Timestamps အပေါ် အခြေခံ. Uniqid မှရရှိသော ID သည်အမိန့်အချို့ရှိပြီးတိုက်ခိုက်သူများကခန့်မှန်းနိုင်သည်။ MT_rand မှထုတ်လုပ်သောကျပန်းနံပါတ်များသည်ခန့်မှန်းရခက်သည်။

  2. တိုက်မှုကိုတားဆီးပါIDIQID တစ်ခုတည်းကိုသုံးပါ, ID များထုတ်လုပ်ခြင်းအကြားကွာခြားချက်သည်အလွန်သေးငယ်သောအချိန်ကတိုက်မိမှုဖြစ်လိမ့်မည်။ Mt_rand ၏နိဒါန်းသည်ကျပန်းအချက်များကိုဖြည့်စွက်ပြီးတိုက်မှုဖြစ်နိုင်ခြေကိုထိထိရောက်ရောက်လျှော့ချသည်။

  3. လုံခြုံရေးကိုတိုးတက်အောင်လုပ်ခြင်း - အချို့သောအခြေအနေများတွင် (ငွေပေးချေမှုစနစ်များ, သုံးစွဲသူစနစ်များ, အသုံးပြုသူစစ်ဆေးခြင်းစသဖြင့်) တွင် ID များတွင်အထိခိုက်မခံသောသတင်းအချက်အလက်များပါ 0 င်နိုင်သည်သို့မဟုတ်မှန်းဆခြင်းမှတားဆီးရန်လိုအပ်သည်။ အကယ်. သင်သည် UNIQID ကိုသာမှီခိုနေပါကလုံခြုံရေးအန္တရာယ်များရှိနိုင်ပါကလုံခြုံရေးအန္တရာယ်များရှိနိုင်သည်