PHP实现自动对图片进行滚动显示的方法
程序员文章站
2022-06-02 23:42:37
本文实例讲述了php实现自动对图片进行滚动显示的方法。分享给大家供大家参考。具体如下:
指定某个图片目录,该程序自动在页面上滚动展示每一张图片,使用方法:
1. 创建一...
本文实例讲述了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 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程序设计有所帮助。