1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

随机广告显示(PHP函数)

本帖由 小叶2006-01-25 发布。版面名称:后端开发

  1. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    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[$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://china.chance2mail.com/cgi-bin/regstep1.cgi?myid=CC00099599">  
    <img src="/Article/UploadFiles/200506/20050604173305180.gif" alt="Chance2mail,好礼物送给您!"> </a> 
    ################################ 
    display=10 

    <a href="http://www.my8848.net/agtunion/agtredirect.asp?act=homepage&agtid=2986" target=_blank> 
    <img src="http://www.free868.com/~xinyi/ads/8848.gif" width="468" height="60" alt="欢迎到My8848网站购物" border="0"></a> 


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

    wm_chief New Member

    注册:
    2005-09-05
    帖子:
    17,890
    赞:
    46
    哦!!
     
  3. sluke

    sluke New Member

    注册:
    2005-09-04
    帖子:
    4,550
    赞:
    13
    看起来不错的样子
     
  4. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    从来不写技术教程。
     
  5. wm_chief

    wm_chief New Member

    注册:
    2005-09-05
    帖子:
    17,890
    赞:
    46
    不会。。。