程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 用PHP實現小型站點廣告管理

用PHP實現小型站點廣告管理

編輯:關於PHP編程

圖片鏈接廣告大概是最為常用的網絡廣告模式,但是多條廣告的動態隨機顯示可不是那麼簡單的事情。PHP的文件上傳函數提供了在這塊468x60像素的區域(網頁廣告的標准尺寸)實現能夠根據權值大小而隨機顯示廣告的解決方案,從而避免了開發FTP程序或是ASP和Perl CAI中需要外掛擴展才能實現此項功能的弊端。

  本例在PHP4+MySQL+Apache for Win9x/2000下調試通過,共包括兩部分:用來增加新廣告的程序AddNewAd.php3以及顯示廣告的程序ShowAd.php3,都存放在服務器PHP文件目錄下的“test/guanggao/”目錄中。在guanggao目錄中建立一個存放廣告鏈接圖片的子目錄“adbanner/”。下面我們按步驟進行分析。

1.首先,建立MySQL數據庫:guanggao

  在Windows環境下,建立一個MySQL空數據庫很簡單,因為每個數據庫都是存在於mysql/data/目錄下的一個子目錄,所以只要在該目錄下新建子目錄guanggao就可以了,這時數據庫內還沒有任何表和數據。

2.建立新增廣告程序:AddNewAd.php3

  設計思路:其中先用表單得到用戶的新廣告信息;然後用PHP函數copy()將鏈接圖片(banner)文件上傳到服務器adbanner目錄下;最後將圖片文件名、廣告網址、說明、加權信息等寫入建立的MySQL數據表ad中。該程序代碼如下:

  # AddNewAd.php3——增添新的廣告 #

增添新廣告

    //表單用來輸入新增廣告信息,並交給下面的PHP程序處理;
    //其中,加權值priority數字愈大,載入頁面圖片出現的機率就愈高,默認為1。


    廣告 Banner:  

    廣告網址URL:  

    圖片鏈接說明ALT:  

    顯示加權:  

     


    //處理表單數據的PHP程序;
         //圖片banner名和鏈接地址不能為空;
    if (( banner!="") & ( url!="")) {
    //若廣告鏈接和圖片名已被使用,必須另選;
    if (file_exists("adbanner/". banner_name)) {
    echo "廣告圖片. banner_name.已被使用,請另選!";
    exit;
    };
    //上傳鏈接圖片文件名到adbanner目錄;
    copy( banner,"adbanner/". banner_name);
   //連接MySQL數據庫;
     connection = mysql_connect();  
   //選擇數據源guanggao,執行查詢;;
   mysql_select_db("guanggao", );  
    query="SELECT * FROM ad";
    result=mysql_query( query);
   //如果數據表ad不存在,則按以下結構創建新數據表ad;
   if(!result){
   mysql_query("
   create table ad(
   url varchar(100) not null,
   banner varchar(150) not null,
   alt varchar(100) null,
   priority  tinyint(4) default '1' not null  
   )") or die(mysql_error());  
   }
   //向數據表ad中插入來自於表單的新數據;
    query="insert into ad(url, banner, alt, priority) values(' url', ' banner_name', '
  alt', ' priority')";
   //插入成功則顯示以下信息;
    try=mysql_query( query);
   if( try){
   echo "一條廣告新增完成,詳細信息:
";
   echo "
";
   echo "廣告網址:  url
廣告鏈接說明:  alt
顯示加權:  priority ";
    }
    }
    ?>

3.建立顯示廣告程序:ShowAd.php3

  設計思路:得到數據庫表中所有各列信息分別存到相應的一維數組中,將所有廣告的權值相加得到一個最大隨機數,每次載入頁面用srand() 產生一個隨機樹種子,再用rand()函數產生一個從1到最大隨機數之間的一個隨機數,然後按照一定的規則隨機顯示不同廣告條,權值越大被顯示的機會越大。

    # ShowAd.php3——隨機顯示廣告 #
         //連接選擇數據庫;
     connection = mysql_connect();  
    mysql_select_db("guanggao",  connection);
    //執行查詢得到廣告條數;
     query="SELECT url, banner, alt, priority FROM ad where priority > 0";
     result=mysql_db_query("guanggao",  query);
     numrows=mysql_num_rows( result);
   //使用mysql_fetch_object()函數獲取有用的列信息並存到相應數組中;
    while( row = mysql_fetch_object( result)) {
     adurl[]= row->url;
     adbanner[]= row->banner;
     adalt[]= row->alt;
     adpriority[]= row->priority;
    }
    //初始化中間變量;
     numcheck= numrows;
     i= pricount=0;
    //得到最大隨機數;
    while( numcheck) {
     pricount+= adpriority[ i];
     i++; numcheck--;
   }
   //程序執行時的百萬分之一秒產生隨機數種子;
   srand((double)microtime()*1000000);
   //得到1到最大隨機數之間的一個隨機數;
    pri = rand(1, pricount);
   //中間變量清零;
     pricount=0;
    //按加權值不同,產生用來顯示廣告的、元素為字串的數組;
    for(  i=0;  i< numrows-1;  i++) {
     pricount +=  adpriority[ i];
    if ( pri <=  pricount) {
     ad[]="";
    }
    }
    //顯示廣告,權值越大,顯示機會越大;
    echo  ad[0];
    ?> 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved