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 相关文章推荐
打造计数器DIY三步曲(中)
Oct 09 PHP
php mssql 时间格式问题
Jan 13 PHP
PHP合并数组+与array_merge的区别分析
Aug 01 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
thinkphp模板继承实例简述
Nov 26 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
php二维码生成
Oct 19 PHP
thinkPHP下ueditor的使用方法详解
Dec 26 PHP
PHP递归遍历多维数组实现无限分类的方法
May 06 PHP
PHP实现的数组和XML文件相互转换功能示例
Mar 15 PHP
PHP中的访问修饰符简单比较
Feb 02 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 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.ini 中文版
2006/10/28 PHP
php 文章调用类代码
2011/08/11 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
PHP goto语句用法实例
2019/08/06 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
JavaScript触发器详解
2007/03/10 Javascript
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
2013/09/16 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
javascript比较语义化版本号的实现代码
2016/09/09 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
[14:21]VICI vs EG (BO3)
2018/06/07 DOTA
Python实现字符串匹配算法代码示例
2017/12/05 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
运动会领导邀请函
2014/01/10 职场文书
乐观大学生的自我评价
2014/01/10 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
房屋租赁协议书
2014/10/18 职场文书
教师党员个人自我评价
2015/03/04 职场文书
停电通知范文
2015/04/16 职场文书
写好Python代码的几条重要技巧
2021/05/21 Python
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server
vue中data里面的数据相互使用方式
2022/06/05 Vue.js