A-A+

php实现随机广告显示

2018年11月15日 我爱编程 暂无评论

其实实现随机广告的显示用JS来实现是很简单的,但作为phper,如果我们用php实现随机广告显示,然后将其封装成为一个类,将常用显示权数和广告代码文件全放到一个文件中,而在这个文件当中,可以自己增加显示广告代码,使用时只需要将PHP实现方法调出来即可,这样是不是就很方便很多了。

下面看下php实现随机广告显示的源码,在这个源码当中,一共分为两个文件,一个是php的方法文件,一个是广告设置的.txt文件,运行时可以生成广告显示日志,日志显示了查看广告的ip地址和查看广告的日期,在使用本源码时,只需要将php的方法包含到需要调用的页面,然后在需要的地方进行方法输出 即可。

php实现随机广告显示方法源码:

<?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&#91;$i&#93;,0,7),"display"))){    
        $ads_count+=1;    
        $display_array&#91;$ads_count&#93;=substr($ads_lines&#91;$i&#93;,8);    
        $display_count+=$display_array&#91;$ads_count&#93;;    
        }    
}    
####决定随机显示序号$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&#91;$i&#93;;    
  if ($display_rand<=$pricount) {$ads_num=$i;break;}    
}    
  
#####播放广告代码#########    
$num=0;    
$flag=0;    
  
for($i=0;$i<$lines;$i++){    
    if((!strcmp(substr($ads_lines&#91;$i&#93;,0,7),"display"))){$num++;}    
    if(($num==$ads_num)and($flag==0)){$flag=1;continue;}    
    if(($flag==1)and strcmp($ads_lines&#91;$i&#93;&#91;0&#93;,"#")){echo $ad
s_lines&#91;$i&#93;;continue;}    
    if(($flag==1)and(!(strcmp($ads_lines&#91;$i&#93;&#91;0&#93;,"#")))){break;}    
}    
####纪录广告显示次数#########    
$fp=fopen($log,"a");    
fputs($fp,date( "Y-m-d H:i:s " ).getenv("REMOTE_ADDR")."==>".$a
ds_num."\n");    
fclose($fp);    
}    
?>

调用以下代码即可。

<?php myads();?>

广告图片设置文件:ads.txt

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

display=10

[/code]

注意:在使用时一定要设置存放记录的目录,否则运行时会出现找不到目录的错误.

标签:

给我留言

Copyright © 四季博客 保留所有权利.   Theme  Ality

用户登录