用PHP实现的随机广告显示代码

 更新时间:2007年06月14日 00:00:00   作者:  
<?php 
#########随机广告显示##########  
function myads(){ 
$dir="ads";   #设置存放记录的目录  
//$dir="ads";   #设置存放记录的目录  
$ads="$dir/ads.txt"; #设置广告代码文件 
$log ="$dir/ads.log"; #设置ip记录文件 

$ads_lines=file($ads); 
$lines=count($ads_lines);#文件总行数 

####读出广告总数$ads_count和显示次数到数组$display_array######## 
$ads_count=0; 
$display_count=0; 
for ($i=0;$i<$lines;$i++){ 
    if((!strcmp(substr($ads_lines[$i],0,7),"display"))){ 
        $ads_count+=1; 
        $display_array[$ads_count]=substr($ads_lines[$i],8); 
        $display_count+=$display_array[$ads_count]; 
        } 

####决定随机显示序号$display_rand##### 
srand((double)microtime()*1000000); 
$display_rand = rand(1,$display_count); 

###决定广告序号$ads_num###### 
$pricount=0; 
$ads_num=1; 
for($i=1; $i<=$ads_count; $i++) { 
  $pricount += $display_array[$i]; 
  if ($display_rand<=$pricount) {$ads_num=$i;break;} 


#####播放广告代码######### 
$num=0; 
$flag=0; 

for($i=0;$i<$lines;$i++){ 
    if((!strcmp(substr($ads_lines[$i],0,7),"display"))){$num++;} 
    if(($num==$ads_num)and($flag==0)){$flag=1;continue;} 
    if(($flag==1)and strcmp($ads_lines[$i][0],"#")){echo $ads_lines[$i];continue;} 
    if(($flag==1)and(!(strcmp($ads_lines[$i][0],"#")))){break;} 

####纪录广告显示次数######### 
$fp=fopen($log,"a"); 
fputs($fp,date( "Y-m-d H:i:s " ).getenv("REMOTE_ADDR")."==>".$ads_num."\n"); 
fclose($fp); 

?> 

广告代码文件ads.txt 

########每个广告代码之间用'#'隔开,display为显示加权数,越大显示次数越多################ 
################################ 
display=10 

<a href=http://www.mi222.cn>  
<img src="http://www.mi222.cn/logo.gif" alt="米儿网络欢迎您!"> </a> 
################################ 
display=10 

<a href=http://www.mi222.cn/dh target=_blank> 
<img src="http://www.mi222.cn/dh/QQCF_Pic/logo.gif" width="120" height="60" alt="米儿网址导航,网站免费登陆" border="0"></a> 


调用<?php myads();?>即可

相关文章

  • PHP与SQL注入攻击防范小技巧

    PHP与SQL注入攻击防范小技巧

    SQL注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验,那么常容易遭到SQL注入攻击。SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录遭到暴露,更改或被删除。
    2011-09-09
  • php设计模式小结

    php设计模式小结

    这篇文章主要介绍php的设计模式,主要介绍以下三中模式,主要包括单例模式,工厂模式,观察者模式
    2013-02-02
  • php实现比较两个文件夹异同的方法

    php实现比较两个文件夹异同的方法

    这篇文章主要介绍了php实现比较两个文件夹异同的方法,涉及php针对目录与文件名的递归操作技巧,需要的朋友可以参考下
    2015-06-06
  • 在php中判断一个请求是ajax请求还是普通请求的方法

    在php中判断一个请求是ajax请求还是普通请求的方法

    如何在php中判断一个网页请求是ajax请求还是普通请求?你可以通过传递参数的方法来实现,例如使用如下网址请求
    2011-06-06
  • 使用Zttp简化Guzzle 调用

    使用Zttp简化Guzzle 调用

    在 PHP 的项目中,如果你需要通过代码来发起 HTTP 请求,相信很多人对 GuzzleHttp 这个 Package 很熟悉,然而其实在使用 Guzzle 的时候,我们依然可以做得更简便一点的,下面我们就来看下今天的主角--Zhttp
    2017-07-07
  • PHP中copy on write写时复制机制介绍

    PHP中copy on write写时复制机制介绍

    这篇文章主要介绍了PHP中copy on write写时复制机制介绍,需要的朋友可以参考下
    2014-05-05
  • php中的依赖注入实例详解

    php中的依赖注入实例详解

    这篇文章主要介绍了php中的依赖注入,结合实例形式详细分析了php依赖注入的概念、原理及相关操作注意事项,需要的朋友可以参考下
    2019-08-08
  • PHP call_user_func和call_user_func_array函数的简单理解与应用分析

    PHP call_user_func和call_user_func_array函数的简单理解与应用分析

    这篇文章主要介绍了PHP call_user_func和call_user_func_array函数的简单理解与应用,结合实例形式分析了PHP call_user_func和call_user_func_array函数的基本功能、用法及操作注意事项,需要的朋友可以参考下
    2019-11-11
  • phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法

    phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法

    这篇文章主要介绍了phplist及phpmailer通过gmail发送邮件的配置方法,分析了组合使用二者过程中的相关问题与注意事项,需要的朋友可以参考下
    2016-03-03
  • php安全开发 添加随机字符串验证,防止伪造跨站请求

    php安全开发 添加随机字符串验证,防止伪造跨站请求

    伪造跨站请求比较难以防范,而且危害巨大,攻击者可以通过这种方式恶作剧,发spam信息,删除数据等等。那怎么防范伪造跨站攻击呢
    2013-02-02

最新评论