random image

submit

Registered
има два урока за рандом имидж - 1вия не работи при мен, 2рия - трябва да се записва всяка картинка поотделно, а аз имам към 300 снимки и не искам да го правя на ръка...
за туй питамм има ли някакъв начин/скрипт, с който да се извеждат снимките от дадена директория на произволен принцип? :shock: :shock: :roll: :roll:
 
Здравей!

Много накратко, защото нямам време. Струва ми се, че от тези две неща може да се сглоби нещо:
Тук за прочитането на директорията, в която са снимките (виж и линка, който съм дал):
http://www.web-tourist.net/forum/viewtopic.php?t=3065

А тук код, който сменя изображенията след рефреш (предполагам имаш предвид него):
http://web-tourist.net/login/login/view.php?st=692

Относно първия код теб те касае момента, в който съдържанието на директорията се прочита и събира в масива fm[]. Така имаш имената на всички налични графични файлове и няма нужда да ги пишеш на ръка. От тук насетене трябва да се помисли как да се приложи втория код.

Идеята полученият списък да се пише във файл (тъй като втория код чете от файл) не ми се струва много удачна, защото и без това прочитането на директория е бавен процес, а ако трябва с цикъл да обхождаш и зписваш всички снимки в текстовия файл ще стане непростимо муден.

Зная, че не съм помогнал много, може би има и по-елегнтни начини. Сега съм зает, ако когато приключа с другите задачи (уви, несвръзани с РНР) не съм много уморен, ще се опитам да сглобя нещо функционално от тези два кода.

ПП: Задачката (противно на очакванията ми) се оказа лесна. Ето ти и кода, който сглобих. Втората част, която вади случаен елемент от масива е от урока на Access:

<?
$g=opendir("/home/www/probna.com/demo2/pic");
while ($fajl= readdir( $g ) )
{
if(!is_dir($fajl) && !is_link($fajl) && $fajl != ".." && $fajl != ".") {
$fm[]=$fajl;
}
}

closedir ($g);

srand((double)microtime()*1000000);
$rl = $fm[array_rand($fm)];
echo "<IMG SRC='pic/$rl'>";
?>


Снимките трябва да са в една директория, а също и да няма други файлове и директории освен служебните (тези означени с "." и ".."). Не се използва запис във файл, единственото, което трябва да промениш тук е пътя до графичните файлове и директорията, която ги съдържа.

Демо: http://probna.awardspace.com/demo2/random_2.php

Толкова от мен. Дано съм ти помогнал. Успех!
 
и аз такмо си мислех да пиша такав скрипт но си ме изправарил спести ми време и четене ;)
 
а ако искам да ми отваря само картинки започващи с thumb?? :shock:
примерно в папката имам 2 файла, единия да е DSC001.jpg, а другия - thumb_DSC001.jpg и как да го направя да ми селектира тоя thumb_DSC001.jpg ? :shock:

10x предварително :)
 
.. поне как да направя да ми селектира само файлове започващи с thumb_* ?? :shock:
..или да ми игнорира файлове DSC*****.JPG

if($fail="DSC*.JPG") { continue; } else {....

така не става :cry:
 
най-накрая намерих скрипт , едитнах го малко :)

ето това намерих

<?php

$copperminepath = 'PATH'; //***YOU MUST CHANGE THIS***

$MZrandompic = @mysql_connect('localhost', 'USER', 'PASSWORD'); //***YOU MUST CHANGE THIS***

if (!$MZrandompic) {
echo( '<p>Unable to connect to the ' .
'database server at this time.</p>' );
exit();
}

if (! @mysql_select_db('GALLERY NAME') ) { //*** Change this to your db name ***
die( '<p>Unable to locate the picture ' .
'database at this time.</p>' );
}

$MZresult = @mysql_query("SELECT * FROM TABLEPREFIX_pictures ORDER BY RAND() LIMIT 0,6"); //*** Change the TABLEPREFIX_ to reflect yours ***
if (!$MZresult) {
die('<p>Error performing query: ' . mysql_error() .
'</p>');
}

while ( $MZrow = mysql_fetch_array($MZresult) ) {

$pos = $MZrow['pid']; //This finds the picture's coppermine location

$aid = $MZrow['aid']; // Defines Album ID

echo('<a target = "_new" href="' . $copperminepath . '/displayimage.php?album=' . $aid . '&pos=-' . $pos . '">');

echo('<IMG SRC="' . $copperminepath . '/albums/' . $MZrow['filepath']. 'thumb_' .$MZrow['filename'] . '" alt=' . $MZrow['filename'] . ' '. 'border=0 width=100 height=80>' . '</a>    '); //outputs path from /userspics
}

$MZalbumresult = @mysql_query("SELECT * FROM TABLEPREFIX_albums WHERE aid = '$aid'"); //*** Change TABLEPREFIX to reflect yours
if (!$MZalbumresult) {
die('<p>Error performing query: ' . mysql_error() .
'</p>');
}

while ( $MZalbumname = mysql_fetch_array($MZalbumresult) ) {
echo('<FONT SIZE=1>');
echo('<P ALIGN=center>');

echo('<a href="' . $copperminepath .
'/thumbnails.php?album=' . $aid . '">' .
$MZalbumname['title'] . '</a>' . '</p>');
}

if (! @mysql_select_db('GALLERY NAME') ) { //*** Change this to your db name
die( '<p>Unable to reload the main website ' .
'database at this time.</p>' );
}

?>
:D
 

Горе