过期域名预定抢注

 找回密碼
 免费注册

[實例練習]指定PV值內指定鏈接轉向例程【初級】

 火.. [複製鏈接]
發表於 2008-10-17 11:47:26 | 顯示全部樓層 |閱讀模式
這是一個很簡單的練習,但發現有很多朋友都想要這樣的例程5 _; a* i0 x  N% c& l; Y
+ |9 ^4 w8 E" q( o4 O! h9 c

0 |' J; `4 M% M, s這個例程指定了每3個PV瀏覽量,自動點擊一次百度知道鏈接zhidao.baidu.com就是說,你打開這個鏈接後,每刷新3次,你可以看到源代碼裡面就會執行一次隱藏的轉向,當然我為了讓大家看到轉向,iframe設置了高和寬,而你可以設置成03 y" ]0 j+ X7 F0 q, l
# c5 M0 K, O1 A' K
0 A, G$ E% H0 \9 ^
本例基於PHP5_utf-8,並且是面向對象。是一個簡單的例程,我們會講解此例程的全部原理,以幫助大家熟悉PHP執行過程。) @3 u* V/ t% e

; B9 J0 j+ G/ |9 m6 T. ?首先來看我們的目錄結構
) I. v6 P! g0 z9 y. f* i/ ~5 m6 Y2 E% Y- V
index.php0 h8 d1 G" y9 d
PVtraffic/DisplayCode.php. b# o  F( C& M" H& ?
PVtraffic/Setting.php$ W" S' ]6 G6 y* D1 K, s, x  G, @! K
PVtraffic/PVLog.php
( _* ^. Q* h0 R% S/ g, G. o7 ~4 \* g3 C& m' _
目錄結構是非常簡單的,index.php負責顯示跳轉代碼,就是說,刷新操作和顯示跳轉代碼等,都是index.php需要幹的事情,當然這個index.php也可以變成任何支持php的頁面,比如display.php等。, i/ v( l# H! |; @
, `) ]& p  {- x2 a- U+ f9 c
我們來看index.php的代碼
$ b7 d& g8 ?( [- F$ c<?php
+ g# \/ H5 [0 _: X  Srequire_once('PVtraffic/DisplayCode.php');2 L6 Y0 n- Z8 l* ]7 M0 i" L
$DisplayClickCode = new DisplayClickCode;
! ^( A" Q. D/ U* Z% i$DisplayClickCode->DisplayCode();+ t" q* F$ Y+ O) i% j8 M0 u8 F
?>7 i% G6 t. U8 j0 D( h
6 M- X3 W5 s2 @8 [" d1 e) u  n
require_once表明了index首先包含了PVtraffic/DisplayCode.php這個頁面# J9 ^, W" F3 b+ W, [+ N
然後new一下,復活對象,這樣這個對象才可以使用,我第7課講的http://advertcn.com/viewthread.php?tid=63025&extra=page%3D1
" T5 j! _9 I5 n, R2 i+ O
. ?7 ~6 L) W7 B我們看PVtraffic/DisplayCode.php的源代碼: n# j& T5 V5 }3 {) l5 I0 L8 H
一個類class DisplayClickCode6 h3 ^8 Y8 Y0 u7 H0 J( A
+ g* H& x2 \/ v  e' G* ?
裡面3個自定義函數,http://advertcn.com/viewthread.php?tid=62985&extra=page%3D1
/ i4 L- Q+ T1 b& y$ bfunction DisplayCode()6 ]: j+ D  P3 C8 V  w0 N5 f
function SavePageViews($ClickInterval)  ]3 f% t- p4 k5 v+ n1 l& F
WriteFile($file,$mode,$content)
4 b# {0 U  w' C0 }; l$ |5 E# {( @! [$ P1 Z5 c0 d+ m
所以,index.php源代碼中,$DisplayClickCode = new DisplayClickCode;就是復活DisplayCode.php頁面中class DisplayClickCode類,復活後,拿一個新的變量來命名$DisplayClickCode。注意,前面是變量,後面是類,雖然字母一樣,但是意義不同。* c6 L% c2 u* P0 _
; j, {% p2 v/ n
復活後,我們就可以用類class DisplayClickCode裡面的自定義函數了* I, v  O8 b- q. v% A
index.php裡面的第3行,我們就使用我們自定義的函數DisplayCode()
7 Y4 }: v0 s, O" m# J, y" g$ |2 |) V
$DisplayClickCode->DisplayCode();
8 P4 B' G9 |0 `, p* j" s# ^1 @
6 q4 d  b3 ?2 G/ m  L/ v4 f* v下面我來講講: B- R- V4 R, m; q9 @
PVtraffic/DisplayCode.php頁面,這個頁面有一個類包含3個自定義函數,作用分別是:
5 R) f$ A4 }* [# z$ b" l
# L4 t" o2 t4 @9 c) m% ~function DisplayCode() 顯示跳轉代碼功能1 {# p' f2 W. }& O
function SavePageViews($ClickInterval) 儲存PV值到文本數據庫,帶一個參數+ j* L- o% V+ A7 W2 N6 y
function WriteFile($file,$mode,$content) 寫或生成一個文件! d$ _% X! |& `. g! A; F1 ~
% V6 D8 _! H2 d" W
7 W: _* B5 y! Y( \$ @  ?

; G9 }8 w5 `6 o: J; R# f好了,現在在說說全部頁面的流程,這點很重要:& z$ k% {- Q# m4 l

0 i" U! e+ y+ i2 [8 I; \首先流量經過index.php
: ]+ \! ?( G3 K& {' F7 k

" w" b( E2 S! A7 Z4 ~/ n* X2 Oindex.php載入頁面PVtraffic/DisplayCode.php6 @3 f  i7 o( P9 J6 u
  ^3 f/ g) k$ _$ e0 d8 l
並且index.php調用PVtraffic/DisplayCode.php頁面的函數DisplayCode()
% ~) N# e0 h1 d2 I

& R# v# S3 A/ c/ N7 P1 _# EDisplayCode()這個函數載入頁面Setting.php(我們的手動設置頁面),得到我們要求的點擊間隔和跳轉代碼, f# G9 ]1 c6 X: g
; F# k6 ~6 {- K# l; n9 }: L, y5 k+ L8 ?
然後DisplayCode()這個函數再計算當前已經瀏覽的PV值是否與我們指定的PV值相等 $this->SavePageViews($ClickInterval) == $ClickInterval
! E/ `) r9 v. {8 O( o" z3 o4 V+ W4 w- A5 O# O
如果相等,打印出跳轉代碼 echo $DisplayClickCode;
: ^0 C7 ?, P  X/ t- [6 J! p

. L4 [( c0 A9 z! U+ i4 }( i) b8 ~/ k& _+ x% M
全部流程就完畢了,要注意的是:; X4 O( @6 q$ c3 y' D* V
SavePageViews($ClickInterval)這個函數是儲存當前的PV值,它將當前PV的值儲存到PVtraffic/PVLog.php這個頁面,所以為什麼我們要把這個頁面設置成777可寫PVtraffic/PVLog.php也相當於我們的文本數據庫,只是這裡的數據庫非那種數據庫,這裡的數據庫只是一個非常簡單的可寫文本而已,但都儲存數據,所以也叫數據庫, N8 R/ ]$ e: I) z5 m8 o6 [* @  _$ x

" _* j  Y; q* ]; NWriteFile($file,$mode,$content)這個函數,是SavePageViews函數使用的,就是SavePageViews用來儲存pv值,要將一些數據寫到一個文件中,所以要用WriteFile函數來實現寫入數據到文本的功能6 z) ]% ]  y/ e8 {/ v" s0 t
' E: M3 L3 d7 p/ j5 Y
Setting.php包含了2個變量,分別設置了我們的時間間隔和跳轉源代碼
: _" {; G( @, a& ]$ ?6 T9 j7 X1 i6 D3 n3 A+ {; z
8 E) g# N) m) v% F) I& I

* Q, F6 Z2 Q% t( i+ V大概的講解就算結束了,更詳細的函數內部講解,請看源代碼,寫的很詳細。
$ ?1 K0 ^' P: j0 Y
2 j! B5 e' f, R, h( ^! p小提示:
# f' F) I. n8 ~% f$this-> 表示使用當前類的指定函數
3 q/ w! S; c6 L/ B. Z( ~. y( h: C2 b4 q1 q
public function 表示這個函數可以在類的外部被調用,就是說公開的可以大家用' t. |1 e- N4 Q6 b) A
" {# }6 n9 H9 A2 b/ y6 J
private function 表示這個函數只能在它的當前類裡面使用,外部調用不起,就是只能一個人用,別人不能用:)% g! E# A% X, H  R3 y. ]
! h2 b0 P* V# f% c
$DisplayClickCode = new DisplayClickCode; 新建一個類實例,就是說DisplayClickCode是一套規則,我們這時開通一個新的項目$DisplayClickCode,而這個項目使用class DisplayClickCode規則。這個項目也叫一個對象。
, h7 B; n7 k# D8 A8 D6 ^9 A) Z% C4 h& ], w( |& M7 \2 @* H9 ^
$DisplayClickCode->DisplayCode(); 使用對像 $DisplayClickCode 指定的類中的函數 DisplayCode()( U  k0 h% j7 c
9 r" r2 E) G8 h; X# _  Y

4 H; g- k# j' O( H) X& ?" d. n) _8 S* B& G* J; B
本例是初級例程,不包含geoip判斷等4 K; k3 C0 b# {& q) \" r/ j
部分朋友想用於自動點擊,這裡寫一個iframe的寫法給大家
1 p  B% }$ H" `4 ^4 R! I$ p! f
  1. <iframe src="http://advertcn.com/" width="0" height="0" frameborder="no" style="display:none;"></iframe>
複製代碼
( h+ M9 k+ W% Y* c" X

) V! k# ^/ m+ f6 Y/ o& T# ^5 S: ~  x/ j6 X5 ]
2012年6月20日更新8 t2 u2 }. A/ F' o' d" i4 J
指定PV值内指定链接转向例程_PHP5_UTF-8.zip (2.85 KB, 下載次數: 10)
$ B; X# S' L' F" m& o5 k2 q. R4 u

評分

參與人數 3 +45 收起 理由
无终狼 + 10 支持斑斑
无限可能 + 15 精品文章
陈汤 + 20 原创内容

查看全部評分

發表於 2008-10-17 15:55:55 | 顯示全部樓層
樓主真是個月光寶盒啊
回復 给力 爆菊

使用道具 舉報

發表於 2008-10-17 17:04:27 | 顯示全部樓層
如果改成5次PV點擊一次的話 PVLog.php裡的0 Z% a. W+ L6 M# y) d) f5 Z$ i
<?php $pv=3; ?>也需要改成<?php $pv=5; ?>吧?
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2008-10-17 17:17:44 | 顯示全部樓層
只改Setting.php,PVLog.php是記錄日誌的,這個不需要你改,PVLog.php裡面的值表示當前瀏覽了幾次
回復 给力 爆菊

使用道具 舉報

發表於 2008-10-17 21:25:35 | 顯示全部樓層
月光看來對php不是一般的精通啊
回復 给力 爆菊

使用道具 舉報

發表於 2008-10-27 01:57:44 | 顯示全部樓層
終於可以站在門裡面讚美了!謝謝啊
回復 给力 爆菊

使用道具 舉報

發表於 2008-10-30 03:23:19 | 顯示全部樓層
很棒的教程,謝謝
回復 给力 爆菊

使用道具 舉報

發表於 2008-10-30 12:25:33 | 顯示全部樓層
不錯!0 v0 {9 _' ^% |) C: w6 T
但是如果轉向指定鏈接為隨機在N條鏈接中選擇一條,代碼又是如何實現?
回復 给力 爆菊

使用道具 舉報

發表於 2008-10-30 12:56:02 | 顯示全部樓層
靠.還有什麼不能的呢.我日啊
回復 给力 爆菊

使用道具 舉報

 樓主| 發表於 2008-10-30 17:45:22 | 顯示全部樓層
shui1212 wrote on 2008-10-30 12:25 : & }- C% Y* A8 k7 _' U4 s
不錯!
* L$ a& h3 @8 ~  {但是如果轉向指定鏈接為隨機在N條鏈接中選擇一條,代碼又是如何實現?
! q; w( Y% Z8 G  q7 r1 X9 P1 ~

4 Q+ s  |" ^. D7 }& y5 d4 V, w/ ?! I4 @0 T. B  M! P9 F( @; U  k) p& @) J
很簡單,請在提問專區詳細提出你的問題,我會源碼奉上
回復 给力 爆菊

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

點基

GMT+8, 2025-12-12 08:14

By DZ X3.5

小黑屋

快速回復 返回頂部 返回列表