PHP实现自动对图片进行滚动显示的方法
本文实例讲述了PHP实现自动对图片进行滚动显示的方法。分享给大家供大家参考。具体如下:
指定某个图片目录,该程序自动在页面上滚动展示每一张图片,使用方法:
1.创建一个幻灯片的图像文件夹。
2.删除图像文件夹中的幻灯片。
3.将下面代码编码后,粘贴在一个文本文件中,命名为“index.php”
4.上传文件到一个目录中
5.更换第6和8行为你对应的设置。
6.运行(使用第4步中设置的URL)
代码如下:
<? /* PHPimageslideshow-autoversion-PHP5 */ //settheabsolutepathtothedirectorycontainingtheimages define('IMGDIR','/home/devel/public_html/domain.com/public/images/slideshow/'); //samebutforwww define('WEBIMGDIR','/images/slideshow/'); //setsessionnameforslideshow"cookie" define('SS_SESSNAME','slideshow_sess'); //globalerrorvariable $err=''; //startimgsession session_name(SS_SESSNAME); session_start(); //initslideshowclass $ss=newslideshow($err); if(($err=$ss->init())!='') { header('HTTP/1.1500InternalServerError'); echo$err; exit(); } //getimagefilesfromdirectory $ss->get_images(); //setvariables,done. list($curr,$caption,$first,$prev,$next,$last)=$ss->run(); /* slideshowclass,canbeusedstand-alone */ classslideshow { private$files_arr=NULL; private$err=NULL; publicfunction__construct(&$err) { $this->files_arr=array(); $this->err=$err; } publicfunctioninit() { //runactionsonlyifimgarraysessionvarisempty //checkifimagedirectoryexists if(!$this->dir_exists()) { return'Errorretrievingimages,missingdirectory'; } return''; } publicfunctionget_images() { //runactionsonlyifimgarraysessionvarisempty 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; } } publicfunctionrun() { $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; } elseif($curr>=$last) { $prev=$last-1; $next=$last; } else { $prev=$curr-1; $next=$curr+1; } //linebelowsetsthecaptionname... $caption=str_replace('-','',$this->files_arr[$curr-1]); $caption=str_replace('_','',$caption); $caption=preg_replace('/\.(jpe?g|gif|png)$/i','',$caption); $caption=ucfirst($caption); returnarray($this->files_arr[$curr-1],$caption,1,$prev,$next,$last); } privatefunctiondir_exists() { returnfile_exists(IMGDIR); } } ?> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <title>Slideshow</title> <styletype="text/css"> body{margin:0;padding:0;font:100%Verdana,Arial,Helvetica,sans-serif;font-size:14px;} div#gallery{border:1px#cccsolid;width:600px;margin:40pxauto;text-align:center;} div#galleryimg{margin:20px;border:2px#004694solid;} div#galleryp{color:#004694;} div#gallerydiv.pn{padding:10px;margin:05px;border-top:1px#cccsolid;} a{color:#333;} a:hover{color:#cc0000;} a.sp{padding-right:40px;} </style> </head> <body> <divid="gallery"> <imgsrc="<?=WEBIMGDIR;?><?=$curr;?>"alt=""/> <p><?=$caption;?></p> <divclass="pn"> <ahref="?img=<?=$first;?>">First</a>|<ahref="?img=<?=$prev;?>"class="sp">Previous</a><ahref="?img=<?=$next;?>">Next</a>|<ahref="?img=<?=$last;?>">Last</a> </div> </div> </body> </html>
希望本文所述对大家的php程序设计有所帮助。