-1

我在看这个页面:http ://davidwalsh.name/generate-photo-gallery

它有一些代码来创建一个 php 库。我可以在将代码编译成有效的工作文件方面获得一些帮助吗?我看到那里的代码,我只是对如何将它们组合在一起有点困惑。

谢谢

4

2 回答 2

1

这就是我为工作模型所做的-

1)在此结构下的我的 xampp/htdocs/photogallery
文件夹下创建文件夹/文件结构-

  • 预加载图像(文件夹)
  • 预加载图像拇指(文件夹)
  • 索引.php
  • mootools-1.2.4.js
  • 平滑盒.css
  • 平滑盒.js
  • 样式.css
  • 测试.php

preload-images文件夹包含 jpg 图像(这是要放置在此文件夹下的内容,除非您会收到“无图像显示”消息)

preload-images-thumbs自动为先前文件夹 images 下的图像生成缩略图

我的index.php包含指向这些文件的链接-smoothbox.css、style.css、mootools-1.2.4.js、smoothbox.js(这些文件的来源,我从站点演示中提取)

然后我将 php 文件包含为 include_once('test.php'); 使用以下代码-

/** settings **/
$images_dir = 'preload-images/';
$thumbs_dir = 'preload-images-thumbs/';
$thumbs_width = 200;
$images_per_row = 3;

/** generate photo gallery **/
$image_files = get_files($images_dir);
if(count($image_files)) {
    $index = 0;
    foreach($image_files as $index=>$file) {
        $index++;
        $thumbnail_image = $thumbs_dir.$file;
        if(!file_exists($thumbnail_image)) {
            $extension = get_file_extension($thumbnail_image);
            if($extension) {
                make_thumb($images_dir.$file,$thumbnail_image,$thumbs_width);
            }
        }
        echo '<a href="',$images_dir.$file,'" class="photo-link smoothbox" rel="gallery"><img src="',$thumbnail_image,'" /></a>';
        if($index % $images_per_row == 0) { echo '<div class="clear"></div>'; }
    }
    echo '<div class="clear"></div>';
}
else {
    echo '<p>There are no images in this gallery.</p>';
}

test.php下我放置了这个内容——

/* function:  generates thumbnail */
function make_thumb($src,$dest,$desired_width) {
    /* read the source image */
    $source_image = imagecreatefromjpeg($src);
    $width = imagesx($source_image);
    $height = imagesy($source_image);
    /* find the "desired height" of this thumbnail, relative to the desired width  */
    $desired_height = floor($height*($desired_width/$width));
    /* create a new, "virtual" image */
    $virtual_image = imagecreatetruecolor($desired_width,$desired_height);
    /* copy source image at a resized size */
    imagecopyresized($virtual_image,$source_image,0,0,0,0,$desired_width,$desired_height,$width,$height);
    /* create the physical thumbnail image to its destination */
    imagejpeg($virtual_image,$dest);
}

/* function:  returns files from dir */
function get_files($images_dir,$exts = array('jpg')) {
    $files = array();
    if($handle = opendir($images_dir)) {
        while(false !== ($file = readdir($handle))) {
            $extension = strtolower(get_file_extension($file));
            if($extension && in_array($extension,$exts)) {
                $files[] = $file;
            }
        }
        closedir($handle);
    }
    return $files;
}

/* function:  returns a file's extension */
function get_file_extension($file_name) {
    return substr(strrchr($file_name,'.'),1);
}

现在从您的服务器运行代码,如果您有任何问题,请告诉我。

于 2012-05-07T04:30:10.350 回答
0

你不必编译任何东西。您只需要将代码上传到支持 php 的服务器上。或者,您可以在 PC/笔记本电脑上安装 XAMMP 或 WAMP。

http://www.wampserver.com/en/

于 2012-05-07T03:59:04.393 回答