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 相关文章推荐
用文本文件制作留言板提示(下)
Oct 09 PHP
php下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
php购物网站支付paypal使用方法
Nov 28 PHP
PHP学习 变量使用总结
Mar 24 PHP
PHP Directory 函数的详解
Mar 07 PHP
深入php socket的讲解与实例分析
Jun 13 PHP
Yii框架form表单用法实例
Dec 04 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
php使用curl通过代理获取数据的实现方法
May 16 PHP
php英文单词统计器
Jun 23 PHP
PHP云打印类完整示例
Oct 15 PHP
php实现xml转换数组的方法示例
Feb 03 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
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
php中大括号作用介绍
2012/03/22 PHP
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
利用php-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
js模块加载方式浅析
2017/08/12 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
vue 自动化路由实现代码
2019/09/03 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
Python多继承顺序实例分析
2018/05/26 Python
Python语言快速上手学习方法
2018/12/14 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
详解HTML5.2版本带来的修改
2020/05/06 HTML / CSS
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
自我鉴定思想方面
2013/10/07 职场文书
2014的自我评价
2014/01/13 职场文书
投标承诺书怎么写
2014/05/24 职场文书
党支部鉴定意见
2015/06/02 职场文书