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学习之PHP变量
Oct 09 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
Feb 14 PHP
基于PHP CURL获取邮箱地址的详解
Jun 03 PHP
PHP二维数组排序的3种方法和自定义函数分享
Apr 09 PHP
重新认识php array_merge函数
Aug 31 PHP
php生成唯一的订单函数分享
Feb 02 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
Jul 10 PHP
Yii数据读取与跳转参数传递用法实例分析
Jul 12 PHP
php外部执行命令函数用法小结
Oct 11 PHP
使用php自动备份数据库表的实现方法
Jul 28 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 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利用cookie实现访问次数统计代码
2011/05/19 PHP
Linux环境下搭建php开发环境的操作步骤
2013/06/17 PHP
php中simplexml_load_string使用实例分享
2014/02/13 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
php简单中奖算法(实例)
2017/08/15 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
JavaScript中继承用法实例分析
2015/05/16 Javascript
基于Node.js实现nodemailer邮件发送
2016/01/26 Javascript
基于jquery二维码生成插件qrcode
2017/01/07 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
2019/10/31 Javascript
vue的三种图片引入方式代码实例
2019/11/19 Javascript
vue+canvas实现拼图小游戏
2020/09/18 Javascript
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
2017/07/24 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
谈谈Python中的while循环语句
2019/03/10 Python
Python单元和文档测试实例详解
2019/04/11 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
Django CBV类的用法详解
2019/07/26 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
Python爬取网页信息的示例
2020/09/24 Python
python 写一个性能测试工具(一)
2020/10/24 Python
python爬取微博评论的实例讲解
2021/01/15 Python
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
MIXIT官网:俄罗斯最大的化妆品公司之一
2020/01/25 全球购物
开会迟到检讨书
2014/02/03 职场文书
幼儿园教师演讲稿
2014/05/06 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
旷课检讨书
2015/01/26 职场文书