利用PHP实现与ASP Banner组件相似的类


Posted in PHP onOctober 09, 2006

<?php
/*******************************************************
作者: 吴振亨 (Biz)--phpscript
E-mail:wuzhenheng@china.com
web: http://phpscript.osh.com.cn
文件名:AdRotator.class.php3                 
版权声明:                      

如果您使用了本文件,请给作者写一封E-mail   
如有问题欢迎与作者联系
谢谢您的关注!                     
********************************************************/

/*
广告条管理程序
public method
    GetAdvertisement($adfile)

parameters
    Target=
    Width=
    Height=
    Border=
    Redirect=

*/
class AdRotator {
    var $Target="_blank";
    var $Width="460";
    var $Height="60";
    var $Border=0;
    var $Redirect="";
    var $BannerData=array ();
    var $RandTemp=1;

function AdRotator()
    {
    }
/*
public  
返回广告的链接字串
*/
function GetAdvertisement($adfile)
    {
    if(count($this->BannerData)==0)
        {
        $this->BannerData=$this->ReadAdFile($adfile);
        }
    $AdData=$this->BannerData;

    $uplimited=count($AdData);

    //随机产生一个ID
    srand((double)microtime()*1000000000000000000);
    $id=@rand(1,$uplimited);

        while($this->RandTemp==$id)
               {
            srand((double)microtime()*1000000000000000000);
               //$id=@rand(1,count($AdData));
               $id=@rand(1,$uplimited);
               }
           $this->RandTemp=$id;

       //echo $id;
       //echo count($AdData);
       //echo $AdData[5]["image"];

         
        $LinkString=" <a href="".$this->Redirect;
        $LinkString.="?url=".$AdData[$id]["url"];
        $LinkString.="" Target="".$this->Target;
        $LinkString.="" Title="".$AdData[$id]["title"];
        $LinkString.="" >";
        $LinkString.=" <img border="".$this->Border;
        $LinkString.="" src="".$AdData[$id]["image"];
        $LinkString.="" width="".$this->Width;
        $LinkString.="" height="".$this->Height;
        $LinkString.="" >";
        $LinkString.="</a>";

        //echo $LinkString;
        return $LinkString;
    }
/*
private
读入文件的基本设置
*/
function ReadAdFile($adfile)
    {
    $FP=fopen($adfile,"r");
    while($buffer=@fgets($FP,1024))
        {
        if(!eregi("#",$buffer))
            {
            if(eregi("^*",$buffer))
                {
                $switchto="off";
                }

            $SetTemp=split("=",$buffer);

            if($switchto=="")
                {
                switch     ($SetTemp[0])
                    {
                    case "REDIRECT":
                    $this->Redirect=$SetTemp[1];
                    break;

                    case "WIDTH":
                    $this->WIDTH=$SetTemp[1];
                    break;

                    case "HEIGHT":
                    $this->HEIGHT=$SetTemp[1];
                    break;

                    case "BORDER":
                    $this->BORDER=$SetTemp[1];
                    break;
                    case "TARGET":
                    $this->Target=$SetTemp[1];
                    break;
                    }
                }
            else
                {
                switch     ($SetTemp[0])
                    {
                    case "image":
                    $i++;
                    $BannerData[$i]["image"]=$SetTemp[1];
                    //echo "<br>";echo $buffer;echo $SetTemp[1];
                    //echo $BannerData[$i]["image"];
                    break;

                    case "url":
                    $BannerData[$i]["url"]=$SetTemp[1];
                    break;

                    case "title":
                    $BannerData[$i]["title"]=$SetTemp[1];
                    break;

                    case "rate":
                    $BannerData[$i]["rate"]=$SetTemp[1];
                    break;
                    }//end of switch
                }//end of if($switch)
            }//end of if(#)

        }//end of while

    return $BannerData;

    }//end of function

}//end of class

/*
使用方法
广告设置文件书写格式banner.txt
------开始---
REDIRECT=./adredir.asp
WIDTH=468
HEIGHT=60
BORDER=0
*

#注释

#某某公司广告1
image=../banner/1.gif
url=http://www.asps0ite.com1
title=One
rate=30
----结束-----
说明:
与ASP的广告组件相仿
*表示设置,其他为图片的设置 #:表示注释

----使用-----
$banner=new AdRotator();
echo $banner->GetAdvertisement("./banner.txt");
echo $banner->GetAdvertisement("./banner.txt");
echo $banner->GetAdvertisement("./banner.txt");
*/
?>  

【本文版权归作者与奥索网共同拥有,如需转载,请注明作者及出处】    

PHP 相关文章推荐
PHP中for与foreach的区别分析
Mar 09 PHP
色色整理的PHP面试题集锦
Mar 08 PHP
PHP自动识别字符集并完成转码详解
Aug 02 PHP
使用PHP导出Word文档的原理和实例
Oct 21 PHP
codeigniter中测试通过的分页类示例
Apr 17 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
对比分析php中Cookie与Session的异同
Feb 19 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
Sep 21 PHP
分享一个漂亮的php验证码类
Sep 29 PHP
php实现xml转换数组的方法示例
Feb 03 PHP
php查询及多条件查询
Feb 26 PHP
PHP聊天室技术
Oct 09 #PHP
在windows iis5下安装php4.0+mysql之我见
Oct 09 #PHP
PHP安装攻略:常见问题解答(二)
Oct 09 #PHP
一个没有MYSQL数据库支持的简易留言本的编写
Oct 09 #PHP
NO3第三帝国留言簿制作过程
Oct 09 #PHP
基于数据库的在线人数,日访问量等统计
Oct 09 #PHP
PHP安装攻略:常见问题解答(三)
Oct 09 #PHP
You might like
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
php实现购物车功能(下)
2016/01/05 PHP
短信提示使用 特效
2007/01/19 Javascript
jquery的相对父元素和相对文档定位示例代码
2013/08/02 Javascript
jQuery Mobile 导航栏代码
2013/11/01 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
JavaScript正则表达式实例详解
2016/10/16 Javascript
vue多级多选菜单组件开发
2020/09/08 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
2019/05/22 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
用Python登录Gmail并发送Gmail邮件的教程
2015/04/17 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
python连接mongodb密码认证实例
2018/10/16 Python
Keras 快速解决OOM超内存的问题
2020/06/11 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
解除劳动合同协议书范本
2014/04/14 职场文书
初中学生期末评语
2014/04/24 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
python实现的web监控系统
2021/04/27 Python