用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实现阳历到农历转换的类实例

    PHP实现阳历到农历转换的类实例

    这篇文章主要介绍了PHP实现阳历到农历转换的类,实例分析了阳历转换到阴历的原理与实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP内置的Math函数效率测试

    PHP内置的Math函数效率测试

    这篇文章主要介绍了PHP内置的Math函数效率测试,以实例形式测试了相关的PHP内置数学运算函数的执行时间,分析其运行效率,需要的朋友可以参考下
    2014-12-12
  • DEDE采集大师官方留后门的删除办法

    DEDE采集大师官方留后门的删除办法

    说实话,会故意留后门的程序,最好的方法就是别用。这个后门被发现了,天知道下一个所谓的新版本还会不会冒出更多的后门来。
    2011-01-01
  • php通过array_merge()函数合并两个数组的方法

    php通过array_merge()函数合并两个数组的方法

    这篇文章主要介绍了php通过array_merge()函数合并两个数组的方法,实例分析了php中array_merge()函数合并数组的使用技巧,需要的朋友可以参考下
    2015-03-03
  • php广告加载类用法实例

    php广告加载类用法实例

    这篇文章主要介绍了php广告加载类用法实例,采用jQuery技术可实现异步与同步加载,具有非常广泛的实用价值,需要的朋友可以参考下
    2014-09-09
  • PHP进阶学习之反射基本概念与用法分析

    PHP进阶学习之反射基本概念与用法分析

    这篇文章主要介绍了PHP进阶学习之反射基本概念与用法,结合实例形式分析了php反射的概念、原理基本用法及相关操作注意事项,需要的朋友可以参考下
    2019-06-06
  • php实现使用正则将文本中的网址转换成链接标签

    php实现使用正则将文本中的网址转换成链接标签

    本文给大家分享一段php中使用正则表达式将网址转换成A链接的函数代码,十分简洁实用,这里推荐给大家
    2014-12-12
  • PHP中单引号与双引号的区别分析

    PHP中单引号与双引号的区别分析

    在PHP中,我们可以使用单引号或者双引号来表示字符串。不过我们作为开发者,应该了解其中的区别。单引号与双引号对于定义字符一个是可以解析变量一个是会把变量直接输出来,同时单引号与双引号在字符处理上单引号要优与双引号
    2014-08-08
  • php操作mongoDB实例分析

    php操作mongoDB实例分析

    这篇文章主要介绍了php操作mongoDB的方法,实例分析了php操作mongoDB常用的各类技巧,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • PHP实现将视频转成MP4并获取视频预览图的方法

    PHP实现将视频转成MP4并获取视频预览图的方法

    这篇文章主要介绍了PHP实现将视频转成MP4并获取视频预览图的方法,涉及php操作视频文件的技巧,需要的朋友可以参考下
    2015-03-03

最新评论