-
PHP实现自动对图片进行滚动显示的方法
这篇文章主要介绍了PHP实现自动对图片进行滚动显示的方法,涉及php操作图片特效的技巧,具有一定参考借鉴价值,需要的朋友可以参考下。
本文实例讲述了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>
原文链接:http://www.phpfensi.com/php/20210516/15410.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式