WEB开发网
开发学院WEB开发PHP 利用PHP实现与ASP Banner组件相似的类 阅读

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

 2001-01-02 11:43:47 来源:WEB开发网   
核心提示:<?php /*** 作者: 吴振亨 (Biz)--phpscript E-mail:wuzhenheng@china.com web: http://phpscript.osh.com.cn 文件名:AdRotator.class.php3 版权声明: 如果您使用了本文件,请给作者写一封E-mail
<?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");
*/
?> 

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

Tags:利用 PHP 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接