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

 1   
 2/*******************************************************   
 3作者: 吴振亨 (Biz)--phpscript   
 4E-mail:[email protected]   
 5web: http://phpscript.osh.com.cn   
 6文件名:AdRotator.class.php3   
 7版权声明:   
 8  
 9如果您使用了本文件,请给作者写一封E-mail   
10如有问题欢迎与作者联系   
11谢谢您的关注!   
12********************************************************/   
13  
14/*   
15广告条管理程序   
16public method   
17GetAdvertisement($adfile)   
18  
19parameters   
20Target=   
21Width=   
22Height=   
23Border=   
24Redirect=   
25  
26*/   
27class AdRotator {   
28var $Target="_blank";   
29var $Width="460";   
30var $Height="60";   
31var $Border=0;   
32var $Redirect="";   
33var $BannerData=array ();   
34var $RandTemp=1;   
35  
36function AdRotator()   
37{   
38}   
39/*   
40public   
41返回广告的链接字串   
42*/   
43function GetAdvertisement($adfile)   
44{   
45if(count($this->BannerData)==0)   
46{   
47$this->BannerData=$this->ReadAdFile($adfile);   
48}   
49$AdData=$this->BannerData;   
50  
51$uplimited=count($AdData);   
52  
53//随机产生一个ID   
54srand((double)microtime()*1000000000000000000);   
55$id=@rand(1,$uplimited);   
56  
57while($this->RandTemp==$id)   
58{   
59srand((double)microtime()*1000000000000000000);   
60//$id=@rand(1,count($AdData));   
61$id=@rand(1,$uplimited);   
62}   
63$this->RandTemp=$id;   
64  
65//echo $id;   
66//echo count($AdData);   
67//echo $AdData[5]["image"];   
68  
69  
70$LinkString="

<a .$this-="" href="">Redirect;
$LinkString.="?url=".$AdData[$id]["url"];
$LinkString.="" Target="".$this-&gt;Target;
$LinkString.="" Title="".$AdData[$id]["title"];
$LinkString.="" &gt;";
$LinkString.=" <img .$this-="" border=""/>Border;
$LinkString.="" src="".$AdData[$id]["image"];
$LinkString.="" width="".$this-&gt;Width;
$LinkString.="" height="".$this-&gt;Height;
$LinkString.="" &gt;";
$LinkString.="</a>

 1";   
 2  
 3//echo $LinkString;   
 4return $LinkString;   
 5}   
 6/*   
 7private   
 8读入文件的基本设置   
 9*/   
10function ReadAdFile($adfile)   
11{   
12$FP=fopen($adfile,"r");   
13while($buffer=@fgets($FP,1024))   
14{   
15if(!eregi("#",$buffer))   
16{   
17if(eregi("^*",$buffer))   
18{   
19$switchto="off";   
20}   
21  
22$SetTemp=split("=",$buffer);   
23  
24if($switchto=="")   
25{   
26switch ($SetTemp[0])   
27{   
28case "REDIRECT":   
29$this->Redirect=$SetTemp[1];   
30break;   
31  
32case "WIDTH":   
33$this->WIDTH=$SetTemp[1];   
34break;   
35  
36case "HEIGHT":   
37$this->HEIGHT=$SetTemp[1];   
38break;   
39  
40case "BORDER":   
41$this->BORDER=$SetTemp[1];   
42break;   
43case "TARGET":   
44$this->Target=$SetTemp[1];   
45break;   
46}   
47}   
48else   
49{   
50switch ($SetTemp[0])   
51{   
52case "image":   
53$i++;   
54$BannerData[$i]["image"]=$SetTemp[1];   
55//echo "

<br/>

 1";echo $buffer;echo $SetTemp[1];   
 2//echo $BannerData[$i]["image"];   
 3break;   
 4  
 5case "url":   
 6$BannerData[$i]["url"]=$SetTemp[1];   
 7break;   
 8  
 9case "title":   
10$BannerData[$i]["title"]=$SetTemp[1];   
11break;   
12  
13case "rate":   
14$BannerData[$i]["rate"]=$SetTemp[1];   
15break;   
16}//end of switch   
17}//end of if($switch)   
18}//end of if(#)   
19  
20}//end of while   
21  
22return $BannerData;   
23  
24}//end of function   
25  
26}//end of class   
27  
28/*   
29使用方法   
30广告设置文件书写格式banner.txt   
31\------开始---   
32REDIRECT=./adredir.asp   
33WIDTH=468   
34HEIGHT=60   
35BORDER=0   
36*   
37  
38#注释   
39  
40#某某公司广告1   
41image=../banner/1.gif   
42url=http://www.asps0ite.com1   
43title=One   
44rate=30   
45\----结束-----   
46说明:   
47与ASP的广告组件相仿   
48*表示设置,其他为图片的设置 #:表示注释   
49  
50\----使用-----   
51$banner=new AdRotator();   
52echo $banner->GetAdvertisement("./banner.txt");   
53echo $banner->GetAdvertisement("./banner.txt");   
54echo $banner->GetAdvertisement("./banner.txt");   
55*/   

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

Published At
Categories with Web编程
Tagged with
comments powered by Disqus