嘿,我的第一篇文章:D

问题:

我正在尝试制作模板库,而不是幻灯片节目,我可以在多个站点上轻松重复使用。
主要是用于快速的作品集网站,所有者不知道如何更新代码以添加图片。

它需要从选定目录中读取所有图像文件。 (JPG,GIF,PNG,BMP)它需要能够在没有任何代码更改的情况下更新内容。 (文件夹的动态负载)需要将IMG标签写入查看页面。 (使用javascript进行自定义/CSS?)

来自PHP/JavaScript输出的IMG标签集需要为缩略图,当单击将链接到完整的DEF图片时,最初在链接时可能会使用JavaScript处理。

进步:

我找到了一个PHP脚本,该脚本将从文件夹中读取文件,并将URL保存到用于JavaScript中的数组。但是,用于显示图片的代码是作为单个块幻灯片显示的,因为我需要在其中单独发布所有图像,而不仅仅是替换同一图像的SRC。

例子:

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

那么,如何让JavaScript循环通过GalleryArray [Curimg]并写出我的链接?

我走了这么远,被卡住了。

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>")
 }
}

预先感谢布雷登。


编辑:这是我的沙箱以显示发生了什么事

-edit:删除链接

不管我如何更改每个项目的输出,如果我用简单的回声替换整个部分,我所获得的一切就是以下内容:

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

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

似乎当它试图运行“ foreach()”时,它似乎被卡住了

这是当前的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>';

考虑到我在开始之前从未做过PHP,我认为我做得很好。

有帮助吗?

解决方案

非常简单的自动画廊脚本,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>';

另外,我使用Lightbox jQuery插件使此画廊舒适地查看。

而且,管理此页面的照片非常简单 - 您只需要将.jpg文件上传到照片目录(在此示例中'/foto/')即可。

index.php:

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

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

该文件将包括Photos.php文件并运行它,Photos.php脚本的输出将在标签之间出现。

其他提示

您可以使用PHP写出IMG标签。

另外,您的循环将无限运行,因为它具有始终为真的最终条件。

编辑:看一下您的粘贴,看来您已经误解了PHP的工作原理。 <script src="res/getimages.php"></script> 由于脚本标签在客户端端读取,因此无法正常工作。 PHP在服务器端运行。跑步 res/getimages.php, ,您必须做类似的事情:

<?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 -->

我强烈建议您通过一个快速教程,例如 W3Schools php教程, ,这确实可以帮助您解决这个问题。相同 JavaScript. 。您可以不断询问有关所有这些方法的问题,但是您永远不会真正理解它,并且无法弄清楚如何将所有位放在一起。只要给它几个小时!

感谢所有帮助的人,非常感谢Sergey Kunetsov的画廊剧本,经过轻微的修改后,它非常有效。

对于任何想要它的人来说,这是最终工作的PHP。

http://pastebin.com/f442f31f3

显示的文件夹是$路径。

享受,再次感谢。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top