広告の重複表示の回避

xxx前回はユーザー関数を使ってランダムに広告を表示する関数を作りました。
ただ、前回のコードでは複数設置すると同じ広告が表示されてしまう可能性があるという欠陥がありました。

今回はこれを回避してみたいと思います。

PHP:
  1. <?php
  2.  
  3. //配列$ad_codeへ代入していく
  4.  
  5. $ad_code[] = '
  6.                 <a href="http://nobi-system.com">
  7.                 のび☆すて
  8.                 </a>
  9.               ';
  10.  
  11. $ad_code[] = '
  12.                 <a href="http://chimpan.net/">
  13.                 チンパン団
  14.                 </a>
  15.               ';
  16.  
  17. $ad_code[] = '
  18.               <a href="http://sakuratan.biz/">
  19.                ゆっくり…して…イってネ!
  20.                 </a>
  21.                 ';
  22.  
  23. $ad_code[] = '
  24.                 <a href="http://www.babel-works.com/">
  25.                 バベルワークス
  26.                 </a>
  27.                 ';
  28.  
  29.  
  30. $ad_code[] = '
  31.                 <a href="http://k-do.org/">
  32.                 K-DO!
  33.                 </a>
  34.                 ';
  35. //配列代入 end
  36.  
  37.  
  38. shuffle($ad_code);
  39. //配列に代入されている中身をランダムに並べ変える
  40.  
  41.  
  42. /*
  43.     ランダムのロジックはここまでです。
  44.     以下はランダムに選ばれた広告の表示です。   
  45. */
  46.  
  47.  
  48. print($ad_code[0]);
  49. //シャフルされた広告の1番目を表示
  50. print('ランダム広告配列1つ目<hr>');
  51.  
  52. print($ad_code[1]);
  53. //シャフルされた広告の1番目を表示
  54. print('ランダム広告配列2つ目<hr>');
  55.  
  56. print($ad_code[2]);
  57. //シャフルされた広告の1番目を表示
  58. print('ランダム広告配列3つ目<hr>');
  59.  
  60. ?>

(各関数のリンクをクリックするとPHPのマニュアルへ飛ぶことができます。
引数などの細かい詳細はそちらで確認ができます。)

表示サンプル

ロジックの根本から見直しをして今回は全く違うコードを書いてみました。
(同じ事をするのに全く違うロジックやコードになるのがプログラミングの面白い所です)

5~34行目:
$ad_codeという変数にリンクのHTMLを代入していますが変数の後ろにおまけが付いています。
これは配列という入れ物の中に区切りが付いた変数です。
ここでは配列$ad_codeに0から順番にHTMLを追加しています。
(配列はなぜか0から始まりまるので注意が必要です、なぜかは知りませんw)

38行目:
shuffle関数を使って先ほど順番に配列へ入れたHTMLをその名の通り(ランダムに)シャッフルします。

48~58行目:
広告の表示部分です。
前回は表示する時は同じコードでしたが、今回はちょっと手を加えます。

38行目で変数はシャッフルされているので1番目($ad_code[0])に代入されているHTMLは何が選ばれているかはわかりません。
もちろん2番目、3番目もわかりませんが前回の方法と違うのは
シャッフルしている(順番を変えている)だけなので1番目と2番目(もしくはN番目)が同じになることはありません。
なので、表示する順番に$ad_code[0]、$ad_code[1]のように数字を増やしていくと
ランダムに広告を選択しながらも同じ広告が表示されなくなります。

今回はこんな感じで重複表示を回避してみました。
>>次回はランダム広告表示ツールの最終仕上げです。
まだまだ引っ張りますよwww


このPHP講座はアフィリエイトで楽をするためだけが目的となっています。
その為、かなり端折っている所が多くあります。
もっとPHPをマスターしたいと望む方は以下の本をお勧めします。
のび太はコレ1冊のみでお勉強しました。(半分くらいしか読んでませんがwww)

Leave a Response