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 access 数据连接与读取保存编辑数据的实现代码
May 12 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
php在window iis的莫名问题的测试方法
May 14 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
May 12 PHP
Codeigniter操作数据库表的优化写法总结
Jun 12 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
微信利用PHP创建自定义菜单的方法
Aug 01 PHP
PHP实现路由映射到指定控制器
Aug 13 PHP
php微信公众平台开发之微信群发信息
Sep 13 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
yii2 数据库读写分离配置示例
Feb 10 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
Nov 29 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
建立动态的WML站点(三)
2006/10/09 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
探讨php define()函数及defined()函数使用详解
2013/06/09 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
2013/12/24 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
微信小程序 实现拖拽事件监听实例详解
2016/11/16 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
javascript对HTML字符转义与反转义
2018/12/13 Javascript
vue解决使用$http获取数据时报错的问题
2019/10/30 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
python实现telnet客户端的方法
2015/04/15 Python
Python简单定义与使用二叉树示例
2018/05/11 Python
Pandas 按索引合并数据集的方法
2018/11/15 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
关于爱情的广播稿
2014/01/16 职场文书
房屋出租协议书
2014/04/10 职场文书
追悼会答谢词
2015/01/05 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
学习心理学心得体会
2016/01/22 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书
python实现简易名片管理系统
2021/04/11 Python
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS