#########随机广告显示########## function myads()&#123; &#36;dir="ads"; #设置存放记录的目录 //&#36;dir="ads"; #设置存放记录的目录 &#36;ads="&#36;dir/ads.txt"; #设置广告代码文件 &#36;log ="&#36;dir/ads.log"; #设置ip记录文件 &#36;ads_lines=file(&#36;ads); &#36;lines=count(&#36;ads_lines);#文件总行数 ####读出广告总数&#36;ads_count和显示次数到数组&#36;display_array######## &#36;ads_count=0; &#36;display_count=0; for (&#36;i=0;&#36;i<&#36;lines;&#36;i++)&#123; if((!strcmp(substr(&#36;ads_lines[&#36;i],0,7),"display")))&#123; &#36;ads_count+=1; &#36;display_array[&#36;ads_count]=substr(&#36;ads_lines[&#36;i],8); &#36;display_count+=&#36;display_array[&#36;ads_count]; &#125; &#125; ####决定随机显示序号&#36;display_rand##### srand((double)microtime()*1000000); &#36;display_rand = rand(1,&#36;display_count); ###决定广告序号&#36;ads_num###### &#36;pricount=0; &#36;ads_num=1; for(&#36;i=1; &#36;i<=&#36;ads_count; &#36;i++) &#123; &#36;pricount += &#36;display_array[&#36;i]; if (&#36;display_rand<=&#36;pricount) &#123;&#36;ads_num=&#36;i;break;&#125; &#125; #####播放广告######## &#36;num=0; &#36;flag=0; for(&#36;i=0;&#36;i<&#36;lines;&#36;i++)&#123; if((!strcmp(substr(&#36;ads_lines[&#36;i],0,7),"display")))&#123;&#36;num++;&#125; if((&#36;num==&#36;ads_num)and(&#36;flag==0))&#123;&#36;flag=1;continue;&#125; if((&#36;flag==1)and strcmp(&#36;ads_lines[&#36;i][0],"#"))&#123;echo &#36;ads_lines[&#36;i];continue;&#125; if((&#36;flag==1)and(!(strcmp(&#36;ads_lines[&#36;i][0],"#"))))&#123;break;&#125; &#125; ####纪录广告显示次数######### &#36;fp=fopen(&#36;log,"a"); fputs(&#36;fp,date( "Y-m-d H:i:s " ).getenv("REMOTE_ADDR")."==>".&#36;ads_num.""); fclose(&#36;fp); &#125; ?>
广告代码文件ads.txt
########每个广告代码之间用'#'隔开,display为显示加权数,越大显示次数越多###### display=10 ################################ display=10