加入收藏 | 设为首页 | 会员中心 | 我要投稿 衢州站长网 (https://www.0570zz.cn/)- 行业智能、建站、智能推荐、决策智能、CDN!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-07-18 09:11:36 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了PHP实现自动对图片进行滚动显示的方法,涉及php操作图片特效的技巧,具有一定参考借鉴价值,需要的朋友可以参考下。 本文实例讲述了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>
   

(编辑:衢州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读