Dinamik resim galerisi

3 Cevap php

Sorun:

I'm trying to make a template gallery, not a slide show, which i can easily reuse on multiple sites.
Mostly for quick folio sites, where the owner wont know how to update the code to add pictures.

It needs to read all of the image files from a selected directory. (jpg, gif, png, bmp) It needs to be able to update content without any code changes. (dynamic load from folder) It needs to write out img tags to the viewed page. (using JavaScript for customization/css?)

Php / JavaScript img etiketleri çıkış seti tam def resme link tıklandığında başlangıçta bağlantıları yaparken, bu muhtemelen JavaScript ile ele alınabilir minik gerekir.

İlerleme:

I found a php script that will read the files from a folder and save the urls to an array for use in JavaScript. However the code used to display the picture is done as a single block slide show, where as i need it to post all images separately not just replace the src of the same image.

Örnek:

root/index.htm - pastebin[.]com/m52568ed5
root/images/getimages.php - pastebin[.]com/f5395a572
root/images/pic01.png
root/images/pic03.jpg
root/images/asdfs.gif

Peki nasıl ben [curimg] ve benim bağlantıları yazmak galleryarray döngü için JavaScript alabilirim?

Ben bu kadar var, ve saplanıp.

function rotateimages(){
 // document.getElementById("slideshow").setAttribute("src", "res/gallery/painting/"+galleryarray[curimg])
 // curimg=(curimg<galleryarray.length-1)? curimg+1 : 0
 for (curimg=1;curimg!=0;curimg++;) {
 document.write("<div><img class='gallery' src='" + galleryarray[curimg] + "' /></div>")
 }
}

Önceden, Braden teşekkürler.


EDIT: heres my sandbox to show whats going on

-DÜZENLEME: kaldırıldı bağlantı

Ne olursa olsun ben basit bir yankı ile bütün bölüm değiştirin eğer ben örneğin madde başına çıkışını nasıl değiştiğini hiç olsun tüm şudur:

<!DOCTYPE html>
<html>
    <head>
        <title>My Gallery</title>
    </head>

    <body>
        <div id="gallery"></div>
    </body>
</html>

Bu çalıştırmayı denediğinde takılıyor gibi 'foreach ()' görünüyor

İşte akım php:

<?php

function getDirTree($dir,$p=true) {
    $d = dir($dir);$x=array();
    while (false !== ($r = $d->read())) {
        if($r!="."&&$r!=".."&&(($p==false&&is_dir($dir.$r))||$p==true)) {
                $x[$r] = (is_dir($dir.$r)?array():(is_file($dir.$r)?true:false));
        }
    }

    foreach ($x as $key => $value) {
        if (is_dir($dir.$key."/")) {
                $x[$key] = getDirTree($dir.$key."/",$p);
        }
    }

    ksort($x);
    return $x;
}

$tree = getDirTree("./res/gallery/");

echo '<div id="gallery">';

foreach($tree as $element => $eval) {
    if (is_array($eval)) {

        foreach($eval as $file => $value) {
                if (strstr($file, "jpg")) {
                        $file = 'res/gallery/'.$element.'/'.$file;
                        echo 'test'; //test//echo '<a href="'.$file.'">test</a>'; //test// <img class="gallery" src="'.$file.'" alt="'.$file.'"/></a>';
                }
        }


    }
}
echo '</div>';

ben bu başlamadan önce ben php yapmış Asla gibi düşünüyor, ben im ok yaptığını düşünüyorum.

3 Cevap

Çok basit bir oto galerisi script, photos.php:

<?php
function getDirTree($dir,$p=true) {
    $d = dir($dir);$x=array();
    while (false !== ($r = $d->read())) {
    	if($r!="."&&$r!=".."&&(($p==false&&is_dir($dir.$r))||$p==true)) {
    		$x[$r] = (is_dir($dir.$r)?array():(is_file($dir.$r)?true:false));
    	}
    }

    foreach ($x as $key => $value) {
    	if (is_dir($dir.$key."/")) {
    		$x[$key] = getDirTree($dir.$key."/",$p);
    	}
    }

    ksort($x);
    return $x;
}

$tree = getDirTree("./foto/");

echo '<div id="gallery">';
echo '<ul class="linone">';
foreach($tree as $element => $eval) {
    if (is_array($eval)) {
    	echo '<li><h4>'.$element.'</h4>';
    	echo '<ul class="linone photos">';
    	foreach($eval as $file => $value) {
    		if (strstr($file, "jpg")) {
    			$file = 'foto/'.$element.'/'.$file;
    			echo '<li><a href="'.$file.'"><img src="'.$thumb.'" alt="'.$thumb.'"/></a></li>';
    		}
    	}
    	echo '</ul>';
    	echo '</li>';
    }
}
echo '</ul>';
echo '</div>';

Ayrıca ben görmek için bu galeri rahat ettirmek için lightbox jQuery eklentisi kullanmak.

. Sadece (bu örneğin, '/ foto /') fotoğraf dizine jpg dosya yüklemek gerekir - ve aynı zamanda bu sayfa için fotoğraflarınızı yönetmek çok çok basittir.

index.php:

<!DOCTYPE html>
<html>
    <head>
    	<title>My Gallery</title>
    </head>

    <body>
    	<?php require_once('photos.php') ?>
    </body>
</html>

Bu dosya photos.php yazısının çıkış etiketleri arasına gelecek, photos.php dosyasını eklemek ve bunu çalıştırır olacaktır.

Sen img etiketleri yazmak için PHP kullanabilirsiniz.

Her zaman doğru bir bitiş koşulu var çünkü Ayrıca, sizin için döngü, sonsuz çalışacaktır.

DÜZENLEME: PHP nasıl yanlış anladın gibi pastebin baktığımızda, o görünüyor. Betik etiketleri istemci tarafında okunduğu gibi <script src="res/getimages.php"></script>, çalışmaz. PHP sunucu tarafında çalıştırılır. res/getimages.php, gibi bir şey yapmanız gerekecek çalıştırmak için:

<?php //This is a PHP opening tag; anything after this is PHP code
include('res/getimage.php'); //Imports the PHP file into index.php
?> <!--this is the closing PHP tag - anything after this is HTML -->

Ben çok gerçekten bu size yardımcı olacak, böyle W3Schools PHP Tutorial olarak, hızlı bir öğretici ile çalışma öneriyoruz. Için de geçerlidir JavaScript. Sen nasıl bu tüm işleri hakkında sorular sorarak devam edebilirsiniz, ama sen gerçekten anlamak asla ve birlikte tüm bitleri koymak için nasıl çalışmak mümkün olmayacaktır. Sadece bir kaç saat ver!

, Hafif değişikliğinden sonra mükemmel çalıştı onun galeri script Sergey Kunetsov için büyük bir teşekkür Yardımcı olan herkese teşekkürler.

ve nihai çalışma php iste, bunu isteyen herkes için.

http://pastebin.com/f442f31f3

görüntülenir olsun klasör $ yoludur.

Teşekkürler tekrar zevk, ve.