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

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Die Methode, um die aktuelle Sitzungs -ID in PHP abzurufen, besteht darin, die Funktion seision_id () zu verwenden. Sie müssen jedoch Session_start () aufrufen, um sie erfolgreich zu erhalten. 1. CALL Session_Start (), um die Sitzung zu starten; 2. Verwenden Sie Session_id (), um die Sitzungs -ID zu lesen und eine Zeichenfolge auszugeben, die wie ABC123DEF456GHI789 ?hnelt; 3. Wenn die Rückgabe leer ist, prüfen Sie, ob Session_Start () fehlt, ob der Benutzer zum ersten Mal zugreift oder ob die Sitzung zerst?rt wird. V. Stellen Sie sicher, dass die Sitzung korrekt aktiviert ist und die ID erfolgreich erhalten werden kann.

Um Substrings aus PHP -Zeichenfolgen zu extrahieren, k?nnen Sie die Substr () -Funktion verwenden, die Syntax -Substr (String $ String, int $ start, int $ l?nge = null) ist, und wenn die L?nge nicht angegeben ist, wird sie am Ende abgefangen. Bei der Verarbeitung von Multi-Byte-Zeichen wie Chinesisch sollten Sie die Funktion mb_substr () verwenden, um verstümmelte Code zu vermeiden. Wenn Sie die Zeichenfolge nach einem bestimmten Trennzeichen abfangen müssen, k?nnen Sie exploit () oder substr () zum Implementieren verwenden, z. B. das Extrahieren von Dateinamenverl?ngerungen oder Dom?nennamen.

UnittestinginphpinvolvesverifikationIndividualCodeUnits ?hnliche Funktionen-SetupphpunitviaComposer, CreateTeTeTD-Verzeichnis und Konfigurationsthearrange-Assertpat, writestcasesFoughingthearrarroadandhpunit.xml.2), writestcasesflowingthearrrange

In PHP besteht die h?ufigste Methode darin, die Zeichenfolge mithilfe der Funktion exploit () in ein Array aufzuteilen. Diese Funktion unterteilt die Zeichenfolge in mehrere Teile durch den angegebenen Trennzeichen und gibt ein Array zurück. Die Syntax ist Exploit (Separator, String, Grenze), wobei der Trennzeichen der Trennzeichen ist, die Zeichenfolge ist die ursprüngliche Zeichenfolge und die Grenze ist ein optionaler Parameter, um die maximale Anzahl von Segmenten zu steuern. Zum Beispiel $ str = "Apple, Banane, Orange"; $ arr = explode (",", $ str); Das Ergebnis ist ["Apple", "Bana

JavaScript -Datentypen sind in primitive Typen und Referenztypen unterteilt. Zu den primitiven Typen geh?ren String, Anzahl, Boolesche, Null, undefiniertes und Symbol. Die Werte sind unver?nderlich und Kopien werden bei der Zuweisung von Werten kopiert, sodass sie sich nicht gegenseitig beeinflussen. Referenztypen wie Objekte, Arrays und Funktionen speichern Speicheradressen, und Variablen, die auf dasselbe Objekt zeigen, wirkt sich gegenseitig aus. Typeof und Instanz k?nnen verwendet werden, um die Typen zu bestimmen, aber auf die historischen Probleme der TypeOfnull zu achten. Das Verst?ndnis dieser beiden Arten von Unterschieden kann dazu beitragen, einen stabileren und zuverl?ssigeren Code zu schreiben.

STD :: CHRONO wird in C verwendet, um die Zeit zu verarbeiten, einschlie?lich des Erhaltens der aktuellen Zeit, der Messung der Ausführungszeit, der Betriebszeit und -dauer und der Formatierungsanalysezeit. 1. Verwenden Sie std :: chrono :: system_clock :: Now (), um die aktuelle Zeit zu erhalten, die in eine lesbare Zeichenfolge konvertiert werden kann, aber die Systemuhr ist jedoch m?glicherweise nicht eint?nig. 2. Verwenden Sie STD :: Chrono :: Steady_clock, um die Ausführungszeit zu messen, um die Monotonie zu gew?hrleisten, und umwandeln Sie sie durch Duration_cast in Millisekunden, Sekunden und andere Einheiten; 3. Zeitpunkt (Time_Point) und Dauer (Dauer) k?nnen interoperabel sein, aber die Aufmerksamkeit der Einheitenkompatibilit?t und der Uhr -Epoche (Epoche) sollte beachtet werden.

Um eine Sitzungsvariable an eine andere Seite zu übergeben, besteht der Schlüssel darin, die Sitzung korrekt zu starten und den gleichen $ _Session -Schlüsselnamen zu verwenden. 1. Bevor Sie Sitzungsvariablen für jede Seite verwenden, muss sie als Session_start () bezeichnet und vor dem Skript platziert werden. 2. Setzen Sie Sitzungsvariablen wie $ _Session ['Benutzername'] = 'Johndoe' auf der ersten Seite; 3. Nachdem Sie Session_start () auf einer anderen Seite aufgerufen haben, greifen Sie auf die Variablen über denselben Schlüsselnamen zu. 4. Stellen Sie sicher, dass Session_Start () auf jeder Seite aufgerufen wird, vermeiden Sie im Voraus, Inhalte auszugeben, und überprüfen Sie, ob der Sitzungsspeicher auf dem Server beschreibbar ist. 5. Verwenden Sie SES

ToaccessesvironmentvariableSinphp, useGetEnv () orthe _envSuperglobal.1.getenv ('var_name') ruftaspecificVariable.2. $ _ EN V ['var_name'] AccessesVariablesifvariables_OrderInphp.iniincludes "e" .setvariablesviacliwithvar = ValuePhpScript.php, Inapach
