2012-02-20 3 views
0

디렉토리의 폴더에서 10-15 개의 이미지를 표시하고 싶지만 반복해서 표시하고 싶지는 않습니다. 나는 또한 MySQL 테이블을 사용하고 싶지 않다.JS 또는 PHP를 사용하여 반복하지 않고 폴더의 무작위 이미지 표시

도와주세요. 현재

나는 당신이 이미지의 폴더 glob에하고 반복 할 수있는 코드 아래

   $imglist=''; 
      $img_folder = "gallerypage/small/"; 

       mt_srand((double)microtime()*1000); 

      $imgs = dir($img_folder); 

      while ($file = $imgs->read()) { 
       $imglist .= "$file"."|"; 

      } closedir($imgs->handle); 
      $imglist = explode("|", $imglist); 
      //print_r($imglist); 
      $no = sizeof($imglist)-2; 
      //echo $no; 

      for ($i=0; $i<=$no; $i++) 
      { 
      $random = $i; // mt_rand($i, $no/$i); 
      //echo $random; 
      $fileb = 
      $image = $imglist[$i]; 
      $fileb = $image; 
       if($image != '.' && $image != '..' && $image != 'Thumbs.db') 
       { 

        //echo '<img src="'.$img_folder.$image.'" border=0>'; 
        //if($image != ""){ 
        //echo "k".$image."k"; 
        echo "<a href='".$img_folderb.$fileb."' rel='lightbox-journey'><img src='".$img_folder.$image."' title='".$image."' alt='".$image."' height='100'/>"; 
        //} 
       } 
      } 
+2

지금까지 무엇을 했습니까? –

답변

3
<SCRIPT LANGUAGE="JavaScript"> 

<!-- Begin 
// Set up the image files to be used. 
var theImages = new Array() // do not change this 
// To add more image files, continue with the 
// pattern below, adding to the array. 

theImages[0] = '1.gif' 
theImages[1] = '2.gif' 
theImages[2] = '3.gif' 
theImages[3] = '4.gif' 

// do not edit anything below this line 

var j = 0 
var p = theImages.length; 
var preBuffer = new Array() 
for (i = 0; i < p; i++){ 
    preBuffer[i] = new Image() 
    preBuffer[i].src = theImages[i] 
} 
var whichImage = Math.round(Math.random()*(p-1)); 
function showImage(){ 
document.write('<img src="'+theImages[whichImage]+'">'); 
} 

// End --> 
</script> 

</HEAD> 

<!-- STEP TWO: Copy this code into the BODY of your HTML document --> 

<BODY> 

<SCRIPT LANGUAGE="JavaScript"> 



<!-- Begin 
showImage(); 
// End --> 
</script> 

<p><center> 
<font face="arial, helvetica" size"-2">Free JavaScripts provided<br> 
Master</font> 
</center><p> 
+0

이미이 이미지가 하나만 사용되었습니다. –

2

을 사용하고 당신이 15에 도달 할 때까지, 아무도 당신은 디렉토리에서 파일을 읽을 수

$all_images = glob("/your/directory/{*.jpg, *.JPG, *.JPEG, *.png, *.PNG}", GLOB_BRACE); 

// shuffle($all_images); // uncomment this line to randomize the images 

$images = array(); 

foreach ($all_images as $index => $image) { 
    if ($index == 15) break; // Only print 15 images 
    $image_name = basename($image); 
    echo "<img src='/public/directory/{$image_name}' />"; 
} 
+0

자세한 코드를 쓸 수 있습니까? 나는 그 전문가가 아닙니다 :) 내 디렉토리 이름은 gallerypage/small /입니다. 그리고 이미지를 표시하기 위해 쓰기도합니다. –

+4

코드를 작성하려면 누군가를 고용하고, 그렇지 않으면 배우십시오. –

+0

@ 대각선 : 동의합니다. 내가 제공 한 것은 충분합니다. –

0

반복되지 않습니다 배열에 저장 한 다음 배열을 뒤섞어 처음 10 개 항목을 가져옵니다.

$files = array(); 
$handle=opendir("."); 
while (($file = readdir($handle))!==false) { 
    if(is_file($file)) 
     $files[] = $file; 
} 

shuffle($files); 
$ctr = 0; 
foreach($files as $f) 
{ 
    //process file here 
    if($ctr++>=10) 
    break; 
} 
1
$images = glob('/path/to/image/dir/{*.jpg,*.png,*.gif}', GLOB_BRACE); 

foreach(array_rand($images,10) as $key) //display 10 image 
{ 
    echo '<img src="'.$images[$key].'" />'; 
} 
관련 문제