利用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中json_encode中文编码问题分析
Sep 13 PHP
PHP的简易冒泡法代码分享
Aug 28 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
Jul 05 PHP
php curl获取网页内容(IPV6下超时)的解决办法
Jul 16 PHP
解决Codeigniter不能上传rar和zip压缩包问题
Mar 07 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
php一行代码获取文件后缀名实例分析
Nov 12 PHP
php中使用session防止用户非法登录后台的方法
Jan 27 PHP
PHP微信开发之文本自动回复
Jun 23 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
Nov 15 PHP
详解PHP安装mysql.so扩展的方法
Dec 31 PHP
PHP使用Redis实现防止大并发下二次写入的方法
Oct 09 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删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
简单的自定义php模板引擎
2016/08/26 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
jQuery 隔行换色 支持键盘上下键,按Enter选定值
2009/08/02 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
2016/03/01 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
vue 请求后台数据的实例代码
2017/06/22 Javascript
VueJS事件处理器v-on的使用方法
2017/09/27 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
2019/10/29 Javascript
js实现时钟定时器
2020/03/26 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
Django中的Model操作表的实现
2018/07/24 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
Python爬虫爬取有道实现翻译功能
2020/11/27 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
SQL Server数据库笔试题和答案
2016/02/04 面试题
军训自我鉴定
2014/01/22 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书
婚假请假条怎么写
2014/04/10 职场文书
杭白菊导游词
2015/02/10 职场文书
2016年寒假见闻
2015/10/10 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书