ホームページ >バックエンド開発 >PHPチュートリアル >広告スロットがランダムに商品を呼び出します

広告スロットがランダムに商品を呼び出します

WBOY
WBOYオリジナル
2016-07-25 08:50:481045ブラウズ
しばらく前、叔父のウェブサイトでランダムな広告ページをいくつか見たのですが、とても良いものだと思いました。
共有しましょう。主に関数部分、広告コード ファイル、最後の関数呼び出しの 3 つの部分があります。コードは次のとおりです。
    //ランダム広告表示
  1. function randads(){ //レコードが保存されるディレクトリを設定します
  2. //$dir="ads";レコードが保存されるディレクトリ
  3. $ads="$dir/ads.txt"; // 広告コード ファイルを設定
  4. $log ="$dir/ads.log" // ip レコード ファイルを設定
  5. $ads_lines= file($ads) ;
  6. $lines=count($ads_lines);//ファイル内の総行数
  7. //広告の総数$ads_countとディスプレイの数を配列$display_array
  8. $に読み込みますads_count=0;
  9. $display_count=0;
  10. for ($i =0;$i<$lines;$i++){
  11. if((!strcmp(substr($ads_lines[$i]),"ディスプレイ"))){
  12. $ads_count+=1;
  13. $display_array [$ads_count]=substr($ads_lines[$i],8);
  14. $display_count+=$display_array[$ads_count];
  15. }
  16. }
  17. //シリアル番号をランダムに表示することを決定 $display_rand
  18. srand((double)microtime() *1000000);
  19. $display_rand = rand(1,$display_count); //広告のシリアル番号を決定 $ads_num
  20. $pricount=0 ;
  21. $ads_num=1;
  22. for($i<=$ads_count; $i++) {
  23. $pricount += $display_array[$i];
  24. if ($display_rand<=$pricount) ads_num=$i;break;}
  25. }
  26. //広告を再生する
  27. $num= 0;
  28. $flag=0;
  29. for($i=0;$i<$lines;$i++){
  30. if( (!strcmp(substr($ads_lines[$i],0,7),"表示 "))){$num++;}
  31. if(($num==$ads_num)and($flag==0)){ $flag=1;続行;}
  32. if(($flag==1)and strcmp ($ads_lines[$i][0],"#")){echo $ads_lines[$i];続行;}
  33. if (($flag==1)and(!(strcmp($ads_lines[$i] [0],"#")))){break;}
  34. }
  35. //広告が表示された回数を記録します
  36. $fp=fopen($log,"a");
  37. fputs($fp,date( "Y-m-d H: i:s " ).getenv("REMOTE_ADDR")."==>".$ads_num."n ");
  38. fclose($fp);
  39. }
  40. ?>
  41. コードをコピー
########各広告コードは「#」で区切られています。表示は表示重み付けの数値です。数値が大きいほど、表示される回数が多くなります。#########
### ########################
    コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。