利用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 301转向实现代码
Sep 18 PHP
PHP文件打开、关闭、写入的判断与执行代码
May 24 PHP
使用PHP Socket写的POP3类
Oct 30 PHP
php5.3 goto函数介绍和示例
Mar 21 PHP
php跨站攻击实例分析
Oct 28 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 PHP
PHP实现linux命令tail -f
Feb 22 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
PHP缓存工具XCache安装与使用方法详解
Apr 09 PHP
php中对象引用和复制实例分析
Aug 14 PHP
thinkphp框架使用JWTtoken的方法详解
Oct 10 PHP
PHP 实现链式操作
Mar 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
用户的详细注册和判断
2006/10/09 PHP
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
Ext.MessageBox工具类简介
2009/12/10 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
jQuery 插件开发指南
2014/11/14 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
JavaScript必知必会(三) String .的方法来自何方
2016/06/08 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
jquery心形点赞关注效果的简单实现
2016/11/14 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Python类的多重继承问题深入分析
2014/11/09 Python
python使用post提交数据到远程url的方法
2015/04/29 Python
python决策树之CART分类回归树详解
2017/12/20 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
django之自定义软删除Model的方法
2019/08/14 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
运动会解说词50字
2014/01/18 职场文书
评析教师个人的自我评价
2014/02/19 职场文书
《大江保卫战》教学反思
2014/04/11 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
公司委托书范本5篇
2014/09/20 职场文书
教师理论学习心得体会
2016/01/21 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL