اشکال در این کد تصویر تصادفی

arashsoft

Well-Known Member
سلام

کد زیر را در هر فلدری که حاوی عکس است بگذاریم ، تصاویر تصادفی اون فلدر با فرمت های jpg jpeg png gif رو نشون میده .. خوب ...

کد:
<?php
/*
By Matt Mullenweg > http://photomatt.net
Inspired by Dan Benjamin > http://hiveware.com/imagerotator.php
Latest version always at:
http://photomatt.net/scripts/randomimage
*/// Make this the relative path to the images, like "../img" or "random/images/".
// If the images are in the same directory, leave it blank.
$folder = '';

// Space seperated list of extensions, you probably won't have to change this.
$exts = 'jpg jpeg png gif';

$files = array(); $i = -1; // Initialize some variables
if ('' == $folder) $folder = './';

$handle = opendir($folder);
$exts = explode(' ', $exts);
while (false !== ($file = readdir($handle))) {
foreach($exts as $ext) { // for each extension check the extension
if (preg_match('/\-150x150.'.$ext.'$/i', $file, $test)) { // faster than ereg, case insensitive
$files[] = $file; // it's good
++$i;
}
}
}
closedir($handle); // We're not using it anymore
mt_srand((double)microtime()*1000000); // seed for PHP < 4.2
$rand = mt_rand(0, $i); // $i was incremented as we went along

header('Location: '.$folder.$files[$rand]); // Voila!
?>

و بعد در صفحات html ام با کد زیر :
کد:
<img src="http://localhost/wp/wp-content/uploads/2009/07/y.php" width="150" height="150" />

فراخوانی می کنم ....

همانطوری که در کد php می بینین:کاریش کردم که فقط عکس هایی که توشون 150x150 هست رو نشون بده
کد:
preg_match('/\-150x150.'.$ext.'$/i', $file, $test

تو این فلدر که عکس ها توشه این عکس ها هستن:
مثلا
کد:
1.jpg
و
کد:
1-150x150.jpg

اسکریپت بالا فقط عکس دومی رو لود می کنه و من می خوام یه چیزی بهش اضافه کنم که طرف روش کلیک کنه
عکس فول سایز که اولی باشه لود بشه
میشه؟؟
 

Masoud1365

مدیر انجمن
اسکریپت بالا فقط عکس دومی رو لود می کنه و من می خوام یه چیزی بهش اضافه کنم که طرف روش کلیک کنه
عکس فول سایز که اولی باشه لود بشه
میشه؟؟
باید با دیتا بیس کار کنی که دوتا عکس رو به همدیگه ربط بدی که مثلا بیاد عکس 01.gif رو نشون بده و وقتی روش کلیک میکنی بیاد02.gif رو نمایش بده.
 

arashsoft

Well-Known Member
میشه بیشتر توضیح بدید؟
مثلا میشه با فایل txt هم این کار رو کرد؟
مثلا بیام کل فایل های اصلی رو :
کد:
1.jpg،2.jpg....
رو بریزم داخل یه فایل txt
بعد هر عکسی که با اسکریپت php بالا لود شد، بگیم که معادلش رو لود کنه؟
 

Masoud1365

مدیر انجمن
ببین با فایل کارت خیلی سخت میشه و درست نمیتونی مدیریت کنی.
منظورم اینه که شما یه جدول درست کن توی دیتا بیس با 3 تا فیلد . که ترتیبش اینجوری میشه
اولی که id هست
دومی smallpic که آدرس عکس کوچیک هست
سومی هم largpic که آدرس عکس بزرگتون هست.
حالا بیا توی صفحه یه کوئری تعریف کن اینجوری
PHP:
SELECT * FROM `tablename` ORDER BY id
حالا رکوردتوبا تگ عکس نمایش بده که در آدرس عکس عکس کوچیک رو قرار بده و لینکه عکس رو آدرس عکس بزرگ بزار.همین :wink:
 

arashsoft

Well-Known Member
مسعود جان ، شما حرفه ای هستی و حرفه ای صحبت می کنی .. من نمی فهمم
میشه ازت خواهش کنم یه برنامه ساده برام بنویسی که :
1) من با notepad بازش کنم و اسم دیتابیس رو بدم بهش
2) بعد من این فایل رو که فقط خودم آدرس شو میدونم در مرورگر اجرا کنم ، اگر table که شما گفتی در این دیتابیس ساخته نشده بود ، بسازه
3) اگر از قبل table موجود بود ، فرمی که شما گفتین ظاهر بشه و از طرف تمام چیز هایی که گفتین رو بپرسه
و وقتی کاربر اینا رو وارد کرد در تیبل مربوطه اضافه بشه .. و کاربر خودش دستی بیاد عکس های کوچک و بزرگ رو وارد کنه

و من اون کد رو در صفحه بذارم و باقی ماجرا؟؟؟

ممنونت میشم این لطف رو در حق من بکنی
 

Masoud1365

مدیر انجمن
مسعود جان ، شما حرفه ای هستی و حرفه ای صحبت می کنی .. من نمی فهمم
میشه ازت خواهش کنم یه برنامه ساده برام بنویسی که :
1) من با notepad بازش کنم و اسم دیتابیس رو بدم بهش
2) بعد من این فایل رو که فقط خودم آدرس شو میدونم در مرورگر اجرا کنم ، اگر table که شما گفتی در این دیتابیس ساخته نشده بود ، بسازه
3) اگر از قبل table موجود بود ، فرمی که شما گفتین ظاهر بشه و از طرف تمام چیز هایی که گفتین رو بپرسه
و وقتی کاربر اینا رو وارد کرد در تیبل مربوطه اضافه بشه .. و کاربر خودش دستی بیاد عکس های کوچک و بزرگ رو وارد کنه

و من اون کد رو در صفحه بذارم و باقی ماجرا؟؟؟

ممنونت میشم این لطف رو در حق من بکنی

این جوری که فایده نداره ! چون این باید یه قسمت مدیریت هم داشته باشه که بتونی وارد کنی که چه پسوندهایی رو بتونند آپلود کنند + بتونی فایلها رو حذف کنی و ... که اینو من وقتشو ندارم شرمنده :sad:
یه چیز دیگه که الان به نظرم رسید اینه که شما بیایی از آرایه استفاده کنی اگر نمی خوایی با دیتا بیس کار کنی. یعنی ایندکس آرایت رو بزاری آدرس عکس کوچیک و مقدارش رو بزاری آدرس عکس بزرگ :wink:
 

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

بالا