PHP实现自动对图片进行滚动显示的方法

 更新时间:2015年03月12日 15:21:37   作者:鉴客  
这篇文章主要介绍了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>

希望本文所述对大家的php程序设计有所帮助。

相关文章

  • php简单隔行变色功能实现代码

    php简单隔行变色功能实现代码

    这篇文章主要介绍了php简单隔行变色功能实现代码,通过for语句读取奇偶行数设置样式的不同颜色值进而实现隔行变色功能,需要的朋友可以参考下
    2016-07-07
  • php微信开发接入

    php微信开发接入

    这篇文章主要为大家详细介绍了php微信开发接入,通过检验signature对请求进行校验,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • php基于str_pad实现卡号不足位数自动补0的方法

    php基于str_pad实现卡号不足位数自动补0的方法

    这篇文章主要介绍了php基于str_pad实现卡号不足位数自动补0的方法,对于生成固定位数号码的应用非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析

    PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分

    这篇文章主要介绍了PHP超级全局变量用法,结合实例形式分析了PHP中$GLOBALS,$_SERVER,$_REQUEST等超级全局变量相关概念、功能、使用方法及操作注意事项,需要的朋友可以参考下
    2019-12-12
  • php中获取关键词及所属来源搜索引擎名称的代码

    php中获取关键词及所属来源搜索引擎名称的代码

    有时候我们需要知道用户通过哪个搜索引擎,通过拿个关键词访问我们页面,当然js也可以实现,但这里介绍下php的实现代码。
    2011-02-02
  • PHP迭代器接口Iterator用法分析

    PHP迭代器接口Iterator用法分析

    这篇文章主要介绍了PHP迭代器接口Iterator用法,结合实例形式分析了PHP迭代器接口Iterator的概念、功能、定义与使用方法,需要的朋友可以参考下
    2017-12-12
  • thinkphp在模型中自动完成session赋值示例代码

    thinkphp在模型中自动完成session赋值示例代码

    今天在开发中遇到自动完成中需要获取session值然后自动赋值的功能,还不错,下面与大家分享下代码
    2014-09-09
  • PHP递归遍历文件夹去除注释并压缩php源代码的方法示例

    PHP递归遍历文件夹去除注释并压缩php源代码的方法示例

    这篇文章主要介绍了PHP递归遍历文件夹去除注释并压缩php源代码的方法,涉及php文件与目录的遍历、读取、判断及使用php_strip_whitespace函数删除注释的相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • PHP 输出缓存详解

    PHP 输出缓存详解

    Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。
    2009-06-06
  • PHP实现的简单网络硬盘

    PHP实现的简单网络硬盘

    这篇文章主要介绍了PHP实现的简单网络硬盘,涉及php动态创建文件夹及文件上传的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论