利用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 相关文章推荐
一个简单的MySQL数据浏览器
Oct 09 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
php排序算法(冒泡排序,快速排序)
Oct 09 PHP
PHP Cookie的使用教程详解
Jun 03 PHP
深入PHP运行环境配置的详解
Jun 04 PHP
探讨fckeditor在Php中的配置详解
Jun 08 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
CI框架中通过hook的方式实现简单的权限控制
Jan 07 PHP
PHP 反射(Reflection)使用实例
May 12 PHP
php实现比较全的数据库操作类
Jun 18 PHP
PHP使用pear自带的mail类库发邮件的方法
Jul 08 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
Jun 12 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
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
thinkPHP查询方式小结
2016/01/09 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
input禁止键盘及中文输入,但可以点击
2014/02/13 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
使用jQuery jqPlot插件绘制柱状图
2014/12/18 Javascript
jQuery中click事件用法实例
2014/12/26 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
node中使用es5/6以及支持性与性能对比
2017/08/11 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
2017/11/30 Javascript
angularjs 获取默认选中的单选按钮的value方法
2018/02/28 Javascript
详解Vue.js在页面加载时执行某个方法
2018/11/20 Javascript
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
Django 项目通过加载不同env文件来区分不同环境
2020/02/17 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
工作时间上网检讨书
2014/02/03 职场文书
小学德育工作经验交流材料
2014/05/22 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
道士塔读书笔记
2015/06/30 职场文书
2015年除四害工作总结
2015/07/23 职场文书
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python
Java实现二分搜索树的示例代码
2022/03/17 Java/Android
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript