しばらく前、叔父のウェブサイトでランダムな広告ページをいくつか見たのですが、とても良いものだと思いました。 共有しましょう。主に関数部分、広告コード ファイル、最後の関数呼び出しの 3 つの部分があります。コードは次のとおりです。
//ランダム広告表示- function randads(){ //レコードが保存されるディレクトリを設定します
- //$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]),"ディスプレイ"))){
- $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<=$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),"表示 "))){$num++;}
- if(($num==$ads_num)and($flag==0)){ $flag=1;続行;}
- if(($flag==1)and strcmp ($ads_lines[$i][0],"#")){echo $ads_lines[$i];続行;}
- 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);
- }
- ?>
-
-
- コードをコピー
-
########各広告コードは「#」で区切られています。表示は表示重み付けの数値です。数値が大きいほど、表示される回数が多くなります。######### ### ######################## display=10
-
-
- ############ ##################
- display=10
-
-
-
-
- コードをコピー
-
|