用PHP實(shí)現(xiàn)小型站點(diǎn)廣告管理_PHP教程
Jul 21, 2016 pm 04:04 PM
圖片鏈接廣告大概是最為常用的網(wǎng)絡(luò)廣告模式,但是多條廣告的動(dòng)態(tài)隨機(jī)顯示可不是那么簡單的事情。PHP的文件上傳函數(shù)提供了在這塊468x60像素的區(qū)域(網(wǎng)頁廣告的標(biāo)準(zhǔn)尺寸)實(shí)現(xiàn)能夠根據(jù)權(quán)值大小而隨機(jī)顯示廣告的解決方案,從而避免了開發(fā)FTP程序或是ASP和Perl CAI中需要外掛擴(kuò)展才能實(shí)現(xiàn)此項(xiàng)功能的弊端。
本例在PHP4+MySQL+Apache for Win9x/2000下調(diào)試通過,共包括兩部分:用來增加新廣告的程序AddNewAd.php3以及顯示廣告的程序ShowAd.php3,都存放在服務(wù)器PHP文件目錄下的“test/guanggao/”目錄中。在guanggao目錄中建立一個(gè)存放廣告鏈接圖片的子目錄“adbanner/”。下面我們按步驟進(jìn)行分析。
1.首先,建立MySQL數(shù)據(jù)庫:guanggao
在Windows環(huán)境下,建立一個(gè)MySQL空數(shù)據(jù)庫很簡單,因?yàn)槊總€(gè)數(shù)據(jù)庫都是存在于mysql/data/目錄下的一個(gè)子目錄,所以只要在該目錄下新建子目錄guanggao就可以了,這時(shí)數(shù)據(jù)庫內(nèi)還沒有任何表和數(shù)據(jù)。
2.建立新增廣告程序:AddNewAd.php3
設(shè)計(jì)思路:其中先用表單得到用戶的新廣告信息;然后用PHP函數(shù)copy()將鏈接圖片(banner)文件上傳到服務(wù)器adbanner目錄下;最后將圖片文件名、廣告網(wǎng)址、說明、加權(quán)信息等寫入建立的MySQL數(shù)據(jù)表ad中。該程序代碼如下:
# AddNewAd.php3——增添新的廣告 #
增添新廣告
????//表單用來輸入新增廣告信息,并交給下面的PHP程序處理;
????//其中,加權(quán)值priority數(shù)字愈大,載入頁面圖片出現(xiàn)的機(jī)率就愈高,默認(rèn)為1。
????廣告 Banner:??
????廣告網(wǎng)址URL:??
????圖片鏈接說明ALT:??
????顯示加權(quán):??
?????
????//處理表單數(shù)據(jù)的PHP程序;
?????????//圖片banner名和鏈接地址不能為空;
????if (( banner!="") & ( url!="")) {
????//若廣告鏈接和圖片名已被使用,必須另選;
????if (file_exists("adbanner/". banner_name)) {
????echo "廣告圖片. banner_name.已被使用,請(qǐng)另選!";
????exit;
????};
????//上傳鏈接圖片文件名到adbanner目錄;
????copy( banner,"adbanner/". banner_name);
???//連接MySQL數(shù)據(jù)庫;
?????connection = mysql_connect();??
???//選擇數(shù)據(jù)源guanggao,執(zhí)行查詢;;
???mysql_select_db("guanggao", );??
????query="SELECT * FROM ad";
????result=mysql_query( query);
???//如果數(shù)據(jù)表ad不存在,則按以下結(jié)構(gòu)創(chuàng)建新數(shù)據(jù)表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());??
???}
???//向數(shù)據(jù)表ad中插入來自于表單的新數(shù)據(jù);
????query="insert into ad(url, banner, alt, priority) values(' url', ' banner_name', '
??alt', ' priority')";
???//插入成功則顯示以下信息;
????try=mysql_query( query);
???if( try){
???echo "一條廣告新增完成,詳細(xì)信息:
";
???echo "
";
???echo "廣告網(wǎng)址:??url
廣告鏈接說明:??alt
顯示加權(quán):??priority ";
????}
????}
?????>
3.建立顯示廣告程序:ShowAd.php3
設(shè)計(jì)思路:得到數(shù)據(jù)庫表中所有各列信息分別存到相應(yīng)的一維數(shù)組中,將所有廣告的權(quán)值相加得到一個(gè)最大隨機(jī)數(shù),每次載入頁面用srand() 產(chǎn)生一個(gè)隨機(jī)樹種子,再用rand()函數(shù)產(chǎn)生一個(gè)從1到最大隨機(jī)數(shù)之間的一個(gè)隨機(jī)數(shù),然后按照一定的規(guī)則隨機(jī)顯示不同廣告條,權(quán)值越大被顯示的機(jī)會(huì)越大。
????# ShowAd.php3——隨機(jī)顯示廣告 #
?????????//連接選擇數(shù)據(jù)庫;
?????connection = mysql_connect();??
????mysql_select_db("guanggao",??connection);
????//執(zhí)行查詢得到廣告條數(shù);
?????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()函數(shù)獲取有用的列信息并存到相應(yīng)數(shù)組中;
????while( row = mysql_fetch_object( result)) {
?????adurl[]= row->url;
?????adbanner[]= row->banner;
?????adalt[]= row->alt;
?????adpriority[]= row->priority;
????}
????//初始化中間變量;
?????numcheck= numrows;
?????i= pricount=0;
????//得到最大隨機(jī)數(shù);
????while( numcheck) {
?????pricount+= adpriority[ i];
?????i++; numcheck--;
???}
???//程序執(zhí)行時(shí)的百萬分之一秒產(chǎn)生隨機(jī)數(shù)種子;
???srand((double)microtime()*1000000);
???//得到1到最大隨機(jī)數(shù)之間的一個(gè)隨機(jī)數(shù);
????pri = rand(1, pricount);
???//中間變量清零;
?????pricount=0;
????//按加權(quán)值不同,產(chǎn)生用來顯示廣告的、元素為字串的數(shù)組;
????for(??i=0;??i?????pricount +=??adpriority[ i];
????if ( pri ?????ad[]="";
????}
????}
????//顯示廣告,權(quán)值越大,顯示機(jī)會(huì)越大;
????echo??ad[0];
?????>?

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











PHP?? ?? ?? ID? ?? ??? Session_id () ??? ???? ???? Session_Start ()? ???? ????? ??????. 1. ??? ????? ?? _start ()? ?????. 2. Session_id ()? ???? ?? ID? ?? ABC123DEF456GHI789? ??? ???? ?????. 3. ??? ?? ??? Session_Start ()? ??????, ???? ???? ?????? ?? ??? ?????? ??? ??????. 4. ?? ID? ??, ?? ?? ? ?? ?? ??? ??? ? ??? ?????? ???????. ??? ???? ????? ID? ????? ?? ? ??? ??????.

PHP ????? ?? ???? ????? Syntax substr (String $ String, int $ start,? int $ length = null) ? substr () ??? ??? ? ??? ??? ???? ??? ??? ?????. ???? ?? ?? ??? ??? ?? ? ?? MB_SUBSTR () ??? ???? ?? ??? ??????. ?? ???? ?? ???? ?? ????? ?? exploit () ?? strtr ()? ???? ?? ?? ??? ?? ??? ?? ??? ?? ??? ? ????.

UnitTestingInphPinvolvesVeverifying individualCodeUnitsInitsIntsormeStodStocatchBugSearlyLylyLearLiAberFactoring.1) setupphPunitviacomposer, createEatestDirectory, and ConfigeAuteAutoloadandPhpunit.xml.2) writeTestCases-oct-oct-asserterfat

PHP?? ?? ???? ??? exploit () ??? ???? ???? ??? ???? ????. ? ??? ??? ?? ??? ?? ???? ?? ???? ??? ??? ?????. ??? Exploit (???, ???, ??)??, ??? ???? ????? ???? ?? ?????, ??? ????? ?? ?? ?????? ??? ?? ?????. ?? ?? $ str = "Apple, Banana, Orange"; $ arr = Explode ( ",", $ str); ??? [ "Apple", "Bana???

JavaScript ??? ??? ?? ?? ? ?? ???? ????. ?? ???? ???, ??, ??, ?, ???? ?? ? ??? ?????. ?? ????? ?? ?? ? ? ??? ????? ?? ??? ??? ????. ??, ?? ? ??? ?? ?? ??? ??? ??? ???? ??? ??? ???? ??? ?? ??? ????. ?? ? ????? ??? ???? ? ??? ? ??? TypeofNull? ??? ?????? ??? ? ????. ? ? ?? ??? ???? ?????? ????? ???? ??? ???? ? ??? ? ? ????.

STD :: Chrono? ?? ?? ??, ?? ?? ??, ?? ?? ? ?? ?? ? ?? ?? ??? ???? C?? ???? ??? ?????. 1. std :: chrono :: system_clock :: now ()? ???? ?? ??? ?? ? ??? ?? ??? ???? ?? ? ? ??? ??? ??? ???? ?? ?? ? ????. 2. std :: Chrono :: steady_clock? ???? ?? ??? ???? ?? ??? ???? duration_cast? ?? ?? ?, ? ? ?? ??? ??????. 3. ?? (time_point) ? ?? (??)? ?? ??? ? ? ??? ?? ??? ? ?? epoch (epoch)???? ???????.

PHP?? ?? ??? ?? ???? ????? ?? ??? ???? ???? ??? $ _session ? ??? ???? ????. 1. ? ???? ?? ??? ???? ?? Session_Start ()? ???? ???? ??? ???????. 2. $ _session [ 'username'] = 'johndoe'? ?? ?? ??? ?????. 3. ?? ????? session_start ()? ?? ? ? ??? ? ??? ?? ??? ???????. 4. Session_Start ()? ? ????? ???? ??? ????, ???? ?? ???? ??, ??? ?? ???? ??? ?? ? ? ??? ??????. 5. SES? ??????

toaccessenvironmentvariablesinphp, usegetenv () ?? $ _envsuperglobal.1.getenv ( 'var_name') retrievespescificvariable.2. $ _ en v [ 'var_name'] accessesvariablesifvariables_orderinphp.iniincludes "e".setvariablesviacliwithvar = valuephpscript.php, inapach
