PHP实现自动对图片进行滚动显示的方法


Posted in PHP onMarch 12, 2015

本文实例讲述了PHP实现自动对图片进行滚动显示的方法。分享给大家供大家参考。具体如下:

指定某个图片目录,该程序自动在页面上滚动展示每一张图片,使用方法:

1. 创建一个幻灯片的图像文件夹。
2. 删除图像文件夹中的幻灯片。
3. 将下面代码编码后,粘贴在一个文本文件中,命名为“index.php”
4. 上传文件到一个目录中
5. 更换第6和8行为你对应的设置。
6. 运行 (使用第4步中设置的URL)

代码如下:

<?

/*

    PHP image slideshow - auto version - PHP5

*/

// set the absolute path to the directory containing the images

define ('IMGDIR', '/home/devel/public_html/domain.com/public/images/slideshow/');

// same but for www

define ('WEBIMGDIR', '/images/slideshow/');

// set session name for slideshow "cookie"

define ('SS_SESSNAME', 'slideshow_sess');

// global error variable

$err = '';

// start img session

session_name(SS_SESSNAME);

session_start();

// init slideshow class

$ss = new slideshow($err);

if (($err = $ss->init()) != '')

{

    header('HTTP/1.1 500 Internal Server Error');

    echo $err;

    exit();

}

// get image files from directory

$ss->get_images();

// set variables, done.

list($curr, $caption, $first, $prev, $next, $last) = $ss->run();

/*

    slideshow class, can be used stand-alone

*/

class slideshow

{

    private $files_arr = NULL;

    private $err = NULL;

    public function __construct(&$err)

    {

        $this->files_arr = array();

        $this->err = $err;

    }

    public function init()

    {

        // run actions only if img array session var is empty

        // check if image directory exists

        if (!$this->dir_exists())

        {

            return 'Error retrieving images, missing directory';

        }

        return '';

    }

    public function get_images()

    {

        // run actions only if img array session var is empty

        if (isset($_SESSION['imgarr']))

        {

            $this->files_arr = $_SESSION['imgarr'];

        }

        else

        {

            if ($dh = opendir(IMGDIR))

            {

                while (false !== ($file = readdir($dh)))

                {

                    if (preg_match('/^.*\.(jpg|jpeg|gif|png)$/i', $file))

                    {

                        $this->files_arr[] = $file;

                    }

                }

                closedir($dh);

            }

            $_SESSION['imgarr'] = $this->files_arr;

        }

    }

    public function run()

    {

        $curr = 1;

        $last = count($this->files_arr);

        if (isset($_GET['img']))

        {

            if (preg_match('/^[0-9]+$/', $_GET['img'])) $curr = (int)  $_GET['img'];

            if ($curr <= 0 || $curr > $last) $curr = 1;

        }

        if ($curr <= 1)

        {

            $prev = $curr;

            $next = $curr + 1;

        }

        else if ($curr >= $last)

        {

            $prev = $last - 1;

            $next = $last;

        }

        else

        {

            $prev = $curr - 1;

            $next = $curr + 1;

        }

        // line below sets the caption name...

        $caption = str_replace('-', ' ', $this->files_arr[$curr - 1]);

        $caption = str_replace('_', ' ', $caption);

        $caption = preg_replace('/\.(jpe?g|gif|png)$/i', '', $caption);

        $caption = ucfirst($caption);

        return array($this->files_arr[$curr - 1], $caption, 1, $prev, $next, $last);

    }

    private function dir_exists()

    {

        return file_exists(IMGDIR);

    }

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>Slideshow</title>

    <style type="text/css">

    body{margin: 0;padding: 0;font: 100% Verdana, Arial, Helvetica, sans-serif;font-size: 14px;}

    div#gallery{border: 1px #ccc solid;width: 600px;margin: 40px auto;text-align: center;}

    div#gallery img{margin: 20px;border: 2px #004694 solid;}

    div#gallery p{color: #004694;}

    div#gallery div.pn{padding: 10px;margin: 0 5px;border-top: 1px #ccc solid;}

    a{color:#333;}

    a:hover{color:#cc0000;}

    a.sp{padding-right: 40px;}

    </style>

</head>

<body>

    <div id="gallery">

        <img src="<?=WEBIMGDIR;?><?=$curr;?>" alt="" />

        <p><?=$caption;?></p>

        <div class="pn">

            <a href="?img=<?=$first;?>">First</a> | <a href="?img=<?=$prev;?>" class="sp">Previous</a><a href="?img=<?=$next;?>">Next</a> | <a href="?img=<?=$last;?>">Last</a>

        </div>

    </div>

</body>

</html>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 PHP
php include加载文件两种方式效率比较
Aug 08 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
Jun 23 PHP
PHP高级编程实例:编写守护进程
Sep 02 PHP
PHP生成压缩文件实例
Feb 07 PHP
详解WordPress中分类函数wp_list_categories的使用
Jan 04 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
May 18 PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
May 25 PHP
PHP保存Base64图片base64_decode的问题整理
Nov 04 PHP
php使用gearman进行任务分发操作实例详解
Feb 26 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
Mar 12 #PHP
PHP从FLV文件获取视频预览图的方法
Mar 12 #PHP
PHP简单获取视频预览图的方法
Mar 12 #PHP
php使用memcoder将视频转成mp4格式的方法
Mar 12 #PHP
PHP实现将视频转成MP4并获取视频预览图的方法
Mar 12 #PHP
PHP实现从远程下载文件的方法
Mar 12 #PHP
PHP判断网络文件是否存在的方法
Mar 12 #PHP
You might like
用PHP 快速生成 Flash 动画的方法
2007/03/06 PHP
fleaphp crud操作之findByField函数的使用方法
2011/04/23 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
js实现移动端tab切换时下划线滑动效果
2019/09/08 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
使用python批量转换文件编码为UTF-8的实现
2020/04/03 Python
python3 logging日志封装实例
2020/04/08 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
python中pop()函数的语法与实例
2020/12/01 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
男方父母证婚词
2014/01/12 职场文书
逃课上网检讨书
2014/02/20 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
python用字节处理文件实例讲解
2021/04/13 Python
Python基础之条件语句详解
2021/06/16 Python