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 magic_quotes_gpc的一点认识与分析
Aug 18 PHP
php字符串分割函数用法实例
Mar 17 PHP
PHP实现简单的新闻发布系统实例
Jul 28 PHP
详解PHP执行定时任务的实现思路
Dec 21 PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 PHP
php调用自己java程序的方法详解
May 13 PHP
PHP合并数组的2种方法小结
Nov 24 PHP
php中分页及SqlHelper类用法实例
Jan 12 PHP
php中序列化与反序列化详解
Feb 13 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
PHP实现的数组和XML文件相互转换功能示例
Mar 15 PHP
php+js实现点赞功能的示例详解
Aug 07 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
常见的四种POST 提交数据方式(小总结)
2015/10/08 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
2014/05/11 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
Javascript编程中几种继承方式比较分析
2015/11/28 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
微信小程序 wxapp地图 map详解
2016/10/31 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
javascript 取小数点后几位几种方法总结
2017/08/02 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
python list语法学习(带例子)
2013/11/01 Python
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
Django数据库表反向生成实例解析
2018/02/06 Python
基于python生成器封装的协程类
2019/03/20 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
python实现高斯投影正反算方式
2020/01/17 Python
Python sublime安装及配置过程详解
2020/06/29 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
机电一体化自荐信
2013/12/10 职场文书
“学雷锋活动月”总结
2014/03/09 职场文书
公安机关起诉意见书
2015/05/20 职场文书