PHP实现自动对图片进行滚动显示的方法
来源: 阅读:2679 次 日期:2015-03-16 11:56:11
温馨提示: 小编为您整理了“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" "">

<html xmlns="">

<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程序设计有所帮助。

更多信息请查看IT技术专栏

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map