ایجاد عدد رندوم بیشتر از 10 رقم

plague

Member
سلام من میخاد عدد رندوم 15 رقمی ایجااد کنم
تا 10 رقم رو میتونم اینجوری ایجاد کنم
PHP:
echo rand(1000000000, 9999999999);

ولی یدونه که بهشون اضافه کنم عددای بی سروته بهم میده و تازه کمتر هم میشه !
مثلا 9 رقمی بهم میده یا عدد 9 رقمی منفی میده !!
مشکل از چیه ؟
 

Domanjiri

Well-Known Member
سلام

PHP توانایی کار با اعداد بسیار بزرگ رو نداره(در حالت استاندارد) ولی فکر کنم یه سری کتابخانه ++c باشه که با اعداد بزرگ کار میکنه و از اونجایی که php یه جورایی فرزند ++c هست میشه اونا رو واسه php بکار برد ولی نیازی به این کار نیست .

شما می تونید از هزار جور الگوریتم دیگه استفاده کنید، مثلن ساده ترینش:
PHP:
<?php

$randNumberLength = 1000; 
$randNumber = NULL;

for ($i = 0; $i < $randNumberLength; $i++) {
    $randNumber .= rand(0, 9);  

}

echo $randNumber;

?>

یه چیزی تو پرانتز: خود تابع های رندوم هم از همین الگوریتم ها (حالا نه همین بالاییه ) برای تولید اعداد چند رقمی استفاده می کنن.

موفق و پیروز باشید.
 

MMSHFE

Active Member
با سلام، آقا چرا راه رو سخت ميكنيد؟ خوب دو تا عدد 7 و 8 رقمي رندوم توليد كنيد و به هم بچسبونيد. PHP كه موقع اتصال دو عدد بهم با . مثل رشته عمل ميكنه. البته اگه واقعاً قصد دارين بعنوان عدد ازش توي محاسبات استفاده كنيد قضيه فرق ميكنه. مثلاً همين راهي كه دوستمون گفتن، يك عدد تصادفي 1000 ! رقمي توليد ميكنه. البته به نظرم اينكه هر رقم رو تصادفي توليد كنيم كمي سرعت رو مياره پايين. بهتره چند رقم چند رقم توليد كنيم. براي مثال:
PHP:
$random = rand(1000000,9999999) . rand(100000000,99999999);
موفق باشيد.
 
آخرین ویرایش:

plague

Member
ممنون اینم روش خوبییه
البته فکر میکنم باید قید استفاده ازش رو به عنوان عدد رو بزنم چون نه میتونم به عنوان عدد بریزمش تو دیتابیس نه به عنان عدد باهاش کار کنم تو صفحات که البته خیلی هم مهم نیست حداقل برای اینکاره من اینجوره چون یجور کد رهگیری عددی میخام ایجاد کنم که بعدا قابل سرچ باشه

تنها خاصیت عددی بودنش برای من این بود که وقتی کسی سرچ میکنه این عددو رو توی صفحه دریافت کننده به عنوان عدد دریافتش کنم و جلوی خرابکاری های احتمالی رو بگیرم
کد:
$code = (int) $_post['code'];
حالا فوقش اسکیپش میکنم
 

MMSHFE

Active Member
با سلام، ميتونيد با اين تابع، مقادير غير عددي رو از متن دريافت شده از كاربر حذف كنيد و بعد عمل مقايسه با كد تصادفي توليدشده رو انجام بدين:
PHP:
preg_replace('#[^0-9]#','',$string);
توي كد فوق، من فرض كردم متني كه از كاربر دريافت كردين، توي متغير string$ ذخيره شده.
اينطوري ديگه Escape هم لازم نداره.
موفق باشيد.
 

جدیدترین ارسال ها

بالا