اقا من میخوام بدون میشه با تابع
<?php
echo rand()
?>
استفاده کنم برای عکس
که عکس هارو تصادفی انتخاب کنه
@wpuser
@Nima.nori
اینکه مثلا وقتی یه کاربر ثبت نام کرد
پروفایل کاربر از بین اونایی که من تعیین کردم
تصادفی برا کاربر انتخاب شه
مگه اینکه اول بیای چک کنی چیزی که رند ساخته فایل عکسش اگه وجود داشت نشونش بده اگ نه دوباره رند رو اجرا کن و این مراحل رو چک کن
فکر کنم بتونی با do while بزنی
میتونی روی اسم این کارو کنی مثلا اسم عکسات اینطوری باشه img1 , img2 , im3 و ... بعدش موقع لود کردن عکس توی آدرسش یه عدد رندوم تعیین کنی مثلا از 1 باشه تا هر تعدادی که عکس داری
ولی خب این روش خیلی سطح پایین و بدرد نخوره
@mmj.sys
گفتم که باید چک کنه فایل عکس وجود داره یا نه
روشی که ت گفتی هم فکر خوبه
https://www.php.net/manual/en/function.glob.php
اینو بخون
@hoseen.r8613
تصاویر رو تو یه فولدر مخصوص قرار بده مثلا با اسم images
بعد با glob بدستشون بیار. تابع glob یه سری تکنیک و نکته داره که تو مستندات PHP توضیح داده.
$files = glob('images/*.*'); // به وسیله *.* گفتیم هر تو فولدر images فایل با هر اسم و پسوند رو انتخاب کن
Glob خروجیش یه ارایه هست که اسم فایل ها توش وجود دارن.
برای اینکه یه فایل به طور اتفاقی انتخاب بشه از Rand تو بخش مربوط به ایندکس آرایه([]) استفاده میکنیم.
var_dump($files[rand(0, count($files) - 1)]); // از count $files یه عدد کم کردیم چون ایندکس های آرایه از 0 شروع میشه
این کد اسم فایل رو بر میگردونه و از اونجایی که تو یه فولدر خاص قرارشون دادی خیلی راحت میتونی ازشون استفاده کنی
اگر از لاراول استفاده میکنید یک راهکار حرفه ای تر و خاطرجمع ترش به نظرم این هست که اول بتونید یک آرایه از عناوین تصاویر موجود بدست بیاری و بعد خیلی راحت مثلا با Arr::random($array) یکیشون رو بصورت رندوم انتخاب کنی و بعنوان تصویر آواتار قرار بدی.
$image_names = Storage::files('/path/to/directory');
$random_avatar_name = Arr::random($image_names);
یه آرایه از عکس ها درست کن و ایندکسی که این متد برمیگردونه رو به عنوان ایندکس آرایه استفاده کن و عکس رو بگیر
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟