当前位置:首页 > PHP教程 > php图像处理 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-16 11:59:04 浏览: 评论:0 

这篇文章主要介绍了PHP实现自动对图片进行滚动显示的方法,涉及php操作图片特效的技巧,具有一定参考借鉴价值,需要的朋友可以参考下。

本文实例讲述了PHP实现自动对图片进行滚动显示的方法,分享给大家供大家参考,具体如下:

指定某个图片目录,该程序自动在页面上滚动展示每一张图片,使用方法:

1. 创建一个幻灯片的图像文件夹。

2. 删除图像文件夹中的幻灯片。

3. 将下面代码编码后,粘贴在一个文本文件中,命名为“index.php”

4. 上传文件到一个目录中

5. 更换第6和8行为你对应的设置。

6. 运行 (使用第4步中设置的URL)

代码如下:

  1. <? 
  2. /* 
  3.     PHP image slideshow - auto version - PHP5 
  4. */ 
  5. // set the absolute path to the directory containing the images 
  6. define ('IMGDIR''/home/devel/public_html/domain.com/public/images/slideshow/'); 
  7. // same but for www 
  8. define ('WEBIMGDIR''/images/slideshow/'); 
  9. // set session name for slideshow "cookie" 
  10. define ('SS_SESSNAME''slideshow_sess'); 
  11. // global error variable 
  12. $err = ''
  13. // start img session 
  14. session_name(SS_SESSNAME); 
  15. session_start(); 
  16. // init slideshow class 
  17. $ss = new slideshow($err); 
  18. if (($err = $ss->init()) != ''
  19.     header('HTTP/1.1 500 Internal Server Error'); 
  20.     echo $err
  21.     exit(); 
  22. // get image files from directory 
  23. $ss->get_images(); 
  24. // set variables, done. 
  25. list($curr$caption$first$prev$next$last) = $ss->run(); 
  26. /* 
  27.     slideshow class, can be used stand-alone 
  28. */ 
  29. class slideshow 
  30.     private $files_arr = NULL; 
  31.     private $err = NULL; 
  32.     public function __construct(&$err
  33.     { 
  34.         $this->files_arr = array(); 
  35.         $this->err = $err
  36.     } 
  37.     public function init() 
  38.     { 
  39.         // run actions only if img array session var is empty 
  40.         // check if image directory exists 
  41.         if (!$this->dir_exists()) 
  42.         { 
  43.             return 'Error retrieving images, missing directory'
  44.         } 
  45.         return ''
  46.     } 
  47.     public function get_images() 
  48.     { 
  49.         // run actions only if img array session var is empty 
  50.         if (isset($_SESSION['imgarr'])) 
  51.         { 
  52.             $this->files_arr = $_SESSION['imgarr']; 
  53.         } 
  54.         else 
  55.         { 
  56.             if ($dh = opendir(IMGDIR)) 
  57.             { 
  58.                 while (false !== ($file = readdir($dh))) 
  59.                 { 
  60.                     if (preg_match('/^.*\.(jpg|jpeg|gif|png)$/i'$file)) 
  61.                     { 
  62.                         $this->files_arr[] = $file
  63.                     } 
  64.                 } 
  65.                 closedir($dh); 
  66.             } 
  67.             $_SESSION['imgarr'] = $this->files_arr; 
  68.         } 
  69.     } 
  70.     public function run() 
  71.     { 
  72.         $curr = 1; 
  73.         $last = count($this->files_arr); 
  74.         if (isset($_GET['img'])) 
  75.         { 
  76.             if (preg_match('/^[0-9]+$/'$_GET['img'])) $curr = (int)  $_GET['img']; 
  77.             if ($curr <= 0 || $curr > $last$curr = 1; 
  78.         } 
  79.         if ($curr <= 1) 
  80.         { 
  81.             $prev = $curr
  82.             $next = $curr + 1; 
  83.         } 
  84.         else if ($curr >= $last
  85.         { 
  86.             $prev = $last - 1; 
  87.             $next = $last
  88.         } 
  89.         else 
  90.         { 
  91.             $prev = $curr - 1; 
  92.             $next = $curr + 1; 
  93.         } 
  94.         // line below sets the caption name... 
  95.         $caption = str_replace('-'' '$this->files_arr[$curr - 1]); 
  96.         $caption = str_replace('_'' '$caption); 
  97.         $caption = preg_replace('/\.(jpe?g|gif|png)$/i'''$caption); 
  98.         $caption = ucfirst($caption); 
  99.         return array($this->files_arr[$curr - 1], $caption, 1, $prev$next$last); 
  100.     } 
  101.     private function dir_exists() 
  102.     { 
  103.         return file_exists(IMGDIR); 
  104.     } 
  105. ?> 
  106. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  107. <html xmlns="http://www.w3.org/1999/xhtml"
  108. <head> 
  109.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  110.     <title>Slideshow</title> 
  111.     <style type="text/css"
  112.     body{margin: 0;padding: 0;font: 100% Verdana, Arial, Helvetica, sans-serif;font-size: 14px;} 
  113.     div#gallery{border: 1px #ccc solid;width: 600px;margin: 40px auto;text-align: center;} 
  114.     div#gallery img{margin: 20px;border: 2px #004694 solid;} 
  115.     div#gallery p{color: #004694;} 
  116.     div#gallery div.pn{padding: 10px;margin: 0 5px;border-top: 1px #ccc solid;} 
  117.     a{color:#333;} 
  118.     a:hover{color:#cc0000;} 
  119.     a.sp{padding-right: 40px;} 
  120.     </style> 
  121. </head> 
  122. <body> 
  123.     <div id="gallery"
  124.         <img src="<?=WEBIMGDIR;?><?=$curr;?>" alt="" /> 
  125.         <p><?=$caption;?></p> 
  126.         <div class="pn"
  127.             <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> 
  128.         </div> 
  129.     </div> 
  130. </body> 
  131. </html>

Tags: PHP图片滚动显示

分享到: