جستجو در بخش : سوال جواب منابع اسلامی لغت نامه ها قوانین و مصوبات نقل قل ها
×

فرم ورود

ورود با گوگل ورود با گوگل ورود با تلگرام ورود با تلگرام
رمز عبور را فراموش کرده ام عضو نیستم، می خواهم عضو شوم
×

×

آدرس بخش انتخاب شده


جهت کپی کردن میتوانید از دکمه های Ctrl + C استفاده کنید
رویداد ها - امتیازات
در حال بارگذاری
×

رویداد ها - امتیازات

برای بررسی عملکرد فعالیت و امتیازات خود باید در وب سایت وارد باشید. در صورت عضویت از بخش بالای صفحه وارد شوید، در غیر این صورت از دکمه پایین، مستقیم به صفحه ثبت نام وارد شوید.

×
×
×

دلیل درخواست بستن پست

کلیه پست هایی که جنبه تبلیغاتی داشته، محتوای اسپم و بی مفهوم در این دسته قرار میگیرند. همچنین پست هایی که به منظور گرفتن بک لینک درج می شوند شامل این مورد هستند.
حاوی مفاهیم غیر اخلاقی، سیاسی و یا توهین آمیز. کلیه پست هایی که از نظر محتوایی نیاز به بررسی و یا حذف شدن دارند در این دسته قرار می گیرند.
محتوایی با عدم جزئیات کافی و مورد نیاز. کلیه پست هایی که منظور نویسنده به وضوح مشخص نیست و نیازمند توضیحات و جزئیات بیشتر می باشند در این دسته قرار می گیرند.
محتوایی بی ربط با موضوعیت سرفصل کلی. کلیه پست هایی که از منظر مفهوم و مضمون ارتباطی با عنوان اصلی سوال ندارند در این دسته قرار می گیرند.
محتوایی دلخواه و بر پایه سلیقه. کلیه پست هایی که یک پاسخ مشخص ندارند و متوانند چندین پاسخ متفاوت و صحیح داشته باشند که کاملا مبتنی بر نظر شخصی افراد هستند در این دسته قرار می گیرند.
محتوایی در حوزه خیلی وسیع. کلیه پست هایی که از نظر محتوایی در یک حوزه ی وسیعی قرار دارند و مشخصا به یک موضوع خاصی اشاره ندارند که پاسخدهی به آن ها مستلزم تشریح مفاهیمی کلی می باشند در این دسته قرار می گیرند.
قبلا در لام تا کام مطرح شده. پست هایی که دقیقا با همین محتوا و مضمون قبلا در وب سایت لام تا کام درج شده اند، با ذکر آدرس منبع تکراری با پست حال حاضر شامل این دسته هستند. تکراری است با:
به سایر دلایل، نیازمند به بررسی توسط مدیر. به هر دلیل غیری که پست را نیازمند بررسی توسط مدیر کرده، با ذکر دلیل، در این دسته قرار میگیرد.
ارسال رای بستن

ساخت رشته تصادفی در php


3
0
1779

من می خواهم تابعی function داشته باشم که یک رشته تصادفی string ایجاد کند

من این تابع function را به صورت زیر نوشته ام

اما نمیدانم چرا خروجی نشان داده نمی شود.

<?php
function RandomString()
{
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $randstring = '';
    for ($i = 0; $i < 10; $i++) {
        $randstring = $characters[rand(0, strlen($characters))];
    }
    return $randstring;
}
RandomString();
echo $randstring;

به نظر شما کجای کار من اشتباه است ؟

تکنولوژی برنامه-نویسی
سوال شده در ثریا نوری
81 امتیاز

500 کاراکتر باقی مانده

3 جواب

5

دو مشکل عمده در تابع شما وجود دارد.

  • $randstring داخل محدوده نیست وقتی echo می کنید.
  • پیوستگی های کارکتر شما در داخل for رعایت نمی شود.

قطعه کد زیر کد شماست با کمی اصلاح

function generateRandomString($length = 10) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}

خروجی به صورت زیر دریافت کنید

// Echo the random string.
// Optionally, you can give it a desired string length.
echo generateRandomString();

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

اگر امن بودن رشته برای شما اهمیت دارد از روش زیر استفاده کنید.

برای این کار از تابع random_int() استفاده باید بشود.

function random_str($length, $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
{
    $pieces = [];
    $max = mb_strlen($keyspace, '8bit') - 1;
    for ($i = 0; $i < $length; ++$i) {
        $pieces []= $keyspace[random_int(0, $max)];
    }
    return implode('', $pieces);
}

نحوه استفاده:

$a = random_str(32);
$b = random_str(8, 'abcdefghijklmnopqrstuvwxyz');

نمونه انلاین

ویرایش شده در 5 سال قبل
جواب داده شده در علی رضایی <m>★</m>
1139 امتیاز

500 کاراکتر باقی مانده


3
function RandomString( $length = '8' ) {

        $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        return substr(str_shuffle($chars),0,$length);

    }

    echo RandomString('30');
جواب داده شده در Prsw?
31 امتیاز


میشه توضیح بدین ایراد روش خودم چی بود ؟ ــ ثریا نوری در 5 سال قبل

هنگامی که دارین متغیر randstring رو ست میکنید داخل for باید حتما یه نقطه قبل مساوی بزارید ــ Prsw? در 5 سال قبل

متوجه شدم ممنون ــ ثریا نوری در 5 سال قبل

خواهش میکنم ولی این روشی که من ارسال کردم سبک تر و راحت تره و سریع تر هم هست ... ــ Prsw? در 5 سال قبل

به چه علت سریع تر هست ؟ ــ ثریا نوری در 5 سال قبل

حلقه استفاده نکنید بهتره ... ــ Prsw? در 5 سال قبل

500 کاراکتر باقی مانده


2
<?php
function RandomString()
    {
        global $randstring;
        $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $randstring = '';
        for ($i = 0; $i < 10; $i++) {
            $randstring .= $characters[rand(0,strlen($characters)-1)];
        }
        return $randstring;
    }
    RandomString();
    echo $randstring;
جواب داده شده در Javad Sadeghi
52 امتیاز


همیشه باید global کرد متغییر رو ؟ ــ ثریا نوری در 5 سال قبل

500 کاراکتر باقی مانده


جواب شما
     
.....
×

×

جعبه لام تا کام


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

تبلیغات توضیحی


داپ اَپ اولین پلتفرم کش‌بک در ایران
اگه میخوای از خریدهایی که میکنی، پاداش نقدی دریافت کنی داپ اَپ رو نصب کن.

تبلیغات تصویری