本文实例讲述了PHP实现自动对图片进行滚动显示的方法。分享给大家供大家参考。具体如下:
指定某个图片目录,该程序自动在页面上滚动展示每一张图片,使用方法:
1. 创建一个幻灯片的图像文件夹。 2. 删除图像文件夹中的幻灯片。 3. 将下面代码编码后,粘贴在一个文本文件中,命名为“index.PHP” 4. 上传文件到一个目录中 5. 更换第6和8行为你对应的设置。 6. 运行 (使用第4步中设置的URL)
代码如下:
代码如下:
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],1,$last);
}
private function dir_exists()
{
return file_exists(IMGDIR);
}
}
?>
Slideshow