利用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 和 MySQL 基础教程(四)
Oct 09 PHP
利用PHP扩展vld查看PHP opcode操作步骤
Mar 04 PHP
ThinkPHP CURD方法之where方法详解
Jun 18 PHP
ThinkPHP中的系统常量和预定义常量集合
Jul 01 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
php中Socket创建与监听实现方法
Jan 05 PHP
Codeigniter实现发送带附件的邮件
Mar 19 PHP
PHP输出日历表代码实例
Mar 27 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
Apr 15 PHP
PHP编写文件多服务器同步程序
Jul 02 PHP
PHP身份证校验码计算方法
Aug 10 PHP
Yii框架 session 数据库存储操作方法示例
Nov 18 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
用php+mysql一个名片库程序
2006/10/09 PHP
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
2014/04/08 PHP
Laravel SQL语句记录方式(推荐)
2016/05/26 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
JS的事件绑定深入认识
2014/06/26 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
ECMAScript5(ES5)中bind方法使用小结
2015/05/07 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
js实现显示当前状态的导航效果代码
2015/08/28 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
vuex与组件联合使用的方法
2018/05/10 Javascript
ionic grid(栅格)九宫格制作详解
2018/06/30 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
python实现推箱子游戏
2020/03/25 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
Python request操作步骤及代码实例
2020/04/13 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
CSS3 animation实现逐帧动画效果
2016/06/02 HTML / CSS
webapp字号大小跟随系统字号大小缩放的示例代码
2018/12/26 HTML / CSS
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
Python如何实现单例模式
2016/06/03 面试题
会计电算化专业毕业生自荐信
2013/12/20 职场文书
授权委托书范文
2014/07/31 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
心理学培训心得体会
2016/01/22 职场文书
送给客户微信问候语!
2019/07/04 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书