Some time ago, I saw some random advertising pages on my uncle’s website, and I thought they were pretty good. Let me share, there are mainly three parts, the function part, the advertising code file, and the final function call. The code is as follows:
- //Random ad display
- function randads(){
- $dir="ads"; //Set the directory where records are stored
- //$dir="ads"; //Set the directory where records are stored directory
- $ads="$dir/ads.txt"; //Set advertising code file
- $log ="$dir/ads.log"; //Set ip record file
- $ads_lines=file($ads) ;
- $lines=count($ads_lines);//The total number of lines in the file
- //Read the total number of ads $ads_count and the number of displays into the array $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];
- }
- }
- //Decided to randomly display the serial number $display_rand
- srand((double)microtime() *1000000);
- $display_rand = rand(1,$display_count);
- //Determine the advertising serial number $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;}
- }
- //Play ads
- $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;}
- }
- //Record the number of times the ad is displayed
- $fp=fopen($log,"a");
- fputs($fp,date( "Y-m-d H: i:s " ).getenv("REMOTE_ADDR")."==>".$ads_num."n");
- fclose($fp);
- }
- ?>
Copy code
- ########Each ad code is separated by '#', display is the display weighting number, the larger the number, the more times it will be displayed #########
- ### ###########################
- display=10
-
-
-
- ############ ##################
- display=10
-
-
Copy code
|