حسین
3 سال پیش توسط حسین مطرح شد
12 پاسخ

سوال درباره تابع rand

اقا من میخوام بدون میشه با تابع

<?php
echo rand()
?>

استفاده کنم برای عکس
که عکس هارو تصادفی انتخاب کنه
@wpuser
@Nima.nori


ثبت پرسش جدید
محمد مهدی امیری
تخصص : جوجه برنامه نویس PHP
@wpuser 3 سال پیش مطرح شد
0

بله میشه.


مهدی اردشیر
تخصص : یه برنامه نویس
@mehdi0121 3 سال پیش مطرح شد
0

سلام منظورت چیه که عکس هارو انتخاب کنه


حسین
تخصص : وب
@hoseen.r8613 3 سال پیش مطرح شد
0

اینکه مثلا وقتی یه کاربر ثبت نام کرد
پروفایل کاربر از بین اونایی که من تعیین کردم
تصادفی برا کاربر انتخاب شه


مهدی اردشیر
تخصص : یه برنامه نویس
@mehdi0121 3 سال پیش مطرح شد
0

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


حسین
تخصص : وب
@hoseen.r8613 3 سال پیش مطرح شد
0

چطوری میشه


Yasin
تخصص : Laravel
@yasinFaraji 3 سال پیش آپدیت شد
0

میتونی روی اسم این کارو کنی مثلا اسم عکسات اینطوری باشه img1 , img2 , im3 و ... بعدش موقع لود کردن عکس توی آدرسش یه عدد رندوم تعیین کنی مثلا از 1 باشه تا هر تعدادی که عکس داری
ولی خب این روش خیلی سطح پایین و بدرد نخوره


حسین
تخصص : وب
@hoseen.r8613 3 سال پیش مطرح شد
0

سطح بالا چیه


mmj-sys
تخصص : داش متخصص چیه من پروفسورم .
@mmj.sys 3 سال پیش مطرح شد
0

@mehdi0121
خب شاید ده تا عدد رندوم امد و تو لیست نبود
لیست عکس هارو بگیر شافل کن


مهدی اردشیر
تخصص : یه برنامه نویس
@mehdi0121 3 سال پیش مطرح شد
0

@mmj.sys
گفتم که باید چک کنه فایل عکس وجود داره یا نه
روشی که ت گفتی هم فکر خوبه

https://www.php.net/manual/en/function.glob.php
اینو بخون
@hoseen.r8613


ASPgo
تخصص : HTML، CSS، PHP و JS، طراح قالب...
@asp.gosk 3 سال پیش آپدیت شد
2

تصاویر رو تو یه فولدر مخصوص قرار بده مثلا با اسم images
بعد با glob بدستشون بیار. تابع glob یه سری تکنیک و نکته داره که تو مستندات PHP توضیح داده.

$files = glob('images/*.*'); // به وسیله *.* گفتیم هر تو فولدر images فایل با هر اسم و پسوند رو انتخاب کن

Glob خروجیش یه ارایه هست که اسم فایل ها توش وجود دارن.
برای اینکه یه فایل به طور اتفاقی انتخاب بشه از Rand تو بخش مربوط به ایندکس آرایه([]) استفاده میکنیم.

var_dump($files[rand(0,  count($files) - 1)]); // از count $files یه عدد کم کردیم چون ایندکس های آرایه از 0 شروع میشه

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


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
3

اگر از لاراول استفاده می‌کنید یک راهکار حرفه ای تر و خاطرجمع ترش به نظرم این هست که اول بتونید یک آرایه از عناوین تصاویر موجود بدست بیاری و بعد خیلی راحت مثلا با Arr::random($array) یکیشون رو بصورت رندوم انتخاب کنی و بعنوان تصویر آواتار قرار بدی.

$image_names = Storage::files('/path/to/directory');
$random_avatar_name = Arr::random($image_names);

عبدالرحمان کیانی
تخصص : Backend developer
@abdolrahman 3 سال پیش مطرح شد
0

یه آرایه از عکس ها درست کن و ایندکسی که این متد برمیگردونه رو به عنوان ایندکس آرایه استفاده کن و عکس رو بگیر


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام