آموزش ساخت ID یکتا در php

  • خانه
  • آموزش ساخت ID یکتا در php
Image تحقیقات

آموزش ساخت ID یکتا در php

سلام و درود خدمت شما دوستان

مقاله امروز درباره تابع uniqid در آموزش php  است .

با استفاده از تابع uniqid در PHP ، می توانیم یک id تولید کنیم. id ، یک عبارت (شامل عدد و حرف) منحصربفرد می باشد (البته گاهی منظور از id ، یک عدد منحصربفرد است، اما تابع uniqid ، یک عبارت منحصربفرد تولید می کند). تابع uniqid ، از زمان کنونی بر حسب میکروثانیه (microsecond) برای تولید عبارت منحصربفرد استفاده می نماید (چون هیچ دو زمانی، دارای عدد برابر نیستند، پس هیچ دو عبارت تولید شده توسط تابع uniqid ، برابر نخواهند بود، مگر اینکه هر دو در یک زمان اجرا شده باشند که در هنگام اجرای کدهای PHP یک فایل، امکان پذیر نیست. پس این تضمین وجود دارد که همیشه عبارت های تولید شده توسط uniqid ، منحصربفرد باشند).

تابع uniqid دو پارامتر دارد اولی به عنوان prefix است که پایین تر شرح میدهیم  و دومی به نام more_entropy  . هر دو پارامتر اختیاری هستند.به صورت پیشفرض عبارت تولید شده 13 کاراکتری باشد ولی اگر پارامتر more_entropy را با true مقدار دهی نمایید این عدد طول شده 23 کاراکتری می شود .

از تابع uniqid نباید برای تولید id های امنیتی استفاده کرد (یعنی id هایی که کسی نباید مقدار آنها را حدس بزند). زیرا این تابع برای تولید عبارت های (رشته های – Strings) تصادفی و غیرقابل حدس زدن به کار نمی رود. برای تولید id های امنیتی، از سایر توابع مرتبط با مفاهیم encryption و hash استفاده کنید.

 

استفاده از prefix

شاید این مورد به ذهن شما برسد که در حالتی که این تابع در دو فایل مختلف، دقیقا در یک زمان مشخص اجرا شود، آنگاه دو عبارت یکسان تولید خواهد شد. اگر دو عبارت تولید شده در دو فایل، باید نسبت به یکدیگر نیز منحصربفرد باشند، تابع uniqid این امکان را فراهم می کند که یک پیشوند (prefix) برای id ها تعیین کنیم، بنابراین می توانید در آن دو فایل، دو پیشوند متفاوت را برای id ها در نظر بگیرید (برای تعیین پیشوند، در ادامه مبحث، مثالی ذکر شده است).

مثال :

<?php
$id = uniqid();
echo "$id";

خروجی :

56d0075d20b27

چنانچه بخواهیم یک پیشوند (prefix) برای id در نظر بگیریم، باید عبارت مربوط به پیشوند را به ورودی تابع uniqid بدهیم. به مثال زیر توجه کنید :

<?php
$id = uniqid("AliHossein_");
echo "$id";

خروجی :

AliHossein_56d0075d22d3a

مثال :

<?php
printf("uniqid(): %s\r\n", uniqid()); 

printf("uniqid('php_'): %s\r\n", uniqid('php_')); 

printf("uniqid('', true): %s\r\n", uniqid('', true));

خروجی :

uniqid(): 56d004827fac2
uniqid('php_'): php_56d004827fb1a
uniqid('', true): 56d004827fb1c0.94852459

برگرفته از سایت کلیدستان