راکت

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

12 پاسخ

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

<?php
echo rand()
?>

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

حسین
حسین
@hoseen.r8613
ثبت پرسش جدید

پاسخ‌ها

12
محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

بله میشه.

مهدی اردشیر
مهدی اردشیر
@mehdi0121

تخصص: یه برنامه نویس

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

شاید پاسخ شما همین‌جا باشد

حسین
حسین
@hoseen.r8613

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

مهدی اردشیر
مهدی اردشیر
@mehdi0121

تخصص: یه برنامه نویس

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

حسین
حسین
@hoseen.r8613

چطوری میشه

Yasin
Yasin
@yasinFaraji

تخصص: Laravel

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

حسین
حسین
@hoseen.r8613

سطح بالا چیه

mmj-sys
mmj-sys
@mmj.sys

تخصص: داش متخصص چیه من پروفسورم .

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

مهدی اردشیر
مهدی اردشیر
@mehdi0121

تخصص: یه برنامه نویس

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

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

ASPgo
ASPgo
@asp.gosk

تخصص: HTML، CSS، PHP و JS، طراح قالب و افزونه وردپرس، سئوکار و مقاله نویس

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

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

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

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

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

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

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

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

تخصص: Backend developer

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

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

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