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 相关文章推荐
一个ftp类(ini.php)
Oct 09 PHP
第七节--类的静态成员
Nov 16 PHP
PHP 简单日历实现代码
Oct 28 PHP
简单PHP上传图片、删除图片实现代码
May 12 PHP
PHP 获取客户端真实IP地址多种方法小结
May 15 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
Nov 02 PHP
url decode problem 解决方法
Dec 26 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
Jun 03 PHP
PHP内核探索:变量概述
Jan 30 PHP
PHP遍历目录并返回统计目录大小
Jun 09 PHP
PHP判断一个变量是否为整数、正整数的方法示例
Sep 11 PHP
TP5框架实现签到功能的方法分析
Apr 05 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
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
php的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
PHP转换IP地址到真实地址的方法详解
2013/06/09 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
PHP7 其他修改
2021/03/09 PHP
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
JS立即执行的匿名函数用法分析
2019/11/04 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
Python中openpyxl实现vlookup函数的实例
2020/10/28 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
自我评价怎么写好呢?
2013/12/05 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
小学端午节活动总结
2015/02/11 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
我的长征观后感
2015/06/09 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL