过期域名预定抢注

 找回密碼
 免费注册

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

 火.. [複製鏈接]
發表於 2008-10-17 11:47:26 | 顯示全部樓層 |閱讀模式
這是一個很簡單的練習,但發現有很多朋友都想要這樣的例程
- n* \3 T! x3 Q$ \) D6 n) A. {- H( O4 a; K
& t! J2 V( ]9 h' ]+ f3 c  Q
這個例程指定了每3個PV瀏覽量,自動點擊一次百度知道鏈接zhidao.baidu.com就是說,你打開這個鏈接後,每刷新3次,你可以看到源代碼裡面就會執行一次隱藏的轉向,當然我為了讓大家看到轉向,iframe設置了高和寬,而你可以設置成0
1 a) _( _- z5 \9 _+ Y/ e+ A
  Y) t$ D6 E6 D# ?' k$ R& }
* V4 s1 u" ]* Z9 ?0 g! W" P* M本例基於PHP5_utf-8,並且是面向對象。是一個簡單的例程,我們會講解此例程的全部原理,以幫助大家熟悉PHP執行過程。8 J: |9 S( \# h; N; V

" r8 W. B0 I& i. G: P9 \首先來看我們的目錄結構
  z4 w- g0 W& ~) t6 |, Z$ u3 }. M: ^( k' H* x7 P
index.php& K, w% j( a" D2 X7 ?  [( v' P
PVtraffic/DisplayCode.php
, Q0 v% F* G  }PVtraffic/Setting.php
% j7 Q# k* B8 d$ WPVtraffic/PVLog.php% c  }% q) Z& ~- j' W
- f2 U6 M4 ]& |: g3 s/ D- |& a
目錄結構是非常簡單的,index.php負責顯示跳轉代碼,就是說,刷新操作和顯示跳轉代碼等,都是index.php需要幹的事情,當然這個index.php也可以變成任何支持php的頁面,比如display.php等。
# ]3 w' U5 L! U$ w8 h. X2 m
0 N( b/ E' ]- `8 s3 t( E- D我們來看index.php的代碼
) t9 {* z' m4 U5 g! V  e/ `<?php
* d0 ?& [/ D: k" T% y+ qrequire_once('PVtraffic/DisplayCode.php');6 _1 [0 ~' g/ u/ w; x5 g
$DisplayClickCode = new DisplayClickCode;
( A6 G& V+ g5 g4 I2 [' L, N$DisplayClickCode->DisplayCode();! V( {. \- [  {) |
?>, A0 }$ W3 B$ a, d" ?
0 h9 ~) D! Q* ~% X& O  v
require_once表明了index首先包含了PVtraffic/DisplayCode.php這個頁面! S7 Y- r  k! s2 K
然後new一下,復活對象,這樣這個對象才可以使用,我第7課講的http://advertcn.com/viewthread.php?tid=63025&extra=page%3D1
+ Y5 m  _( e" g3 @% [! f1 u& Z+ r. Y( g/ x1 ^- ]1 U
我們看PVtraffic/DisplayCode.php的源代碼
1 W) q! t6 l  ?9 T' f一個類class DisplayClickCode: K8 E9 P% ~/ u' z- l% M; J; H

2 d+ }3 f8 ~' u) Y裡面3個自定義函數,http://advertcn.com/viewthread.php?tid=62985&extra=page%3D1
' i0 ~  [  _' q7 `  q' T" |function DisplayCode()
$ e: |5 ^+ \. g4 v" ^4 w9 R8 Wfunction SavePageViews($ClickInterval)
$ q% Y; a) A! O& A: QWriteFile($file,$mode,$content)
- @; m6 Z' ~& _# f/ X3 ]6 R" Q6 d' {1 L" a) R
所以,index.php源代碼中,$DisplayClickCode = new DisplayClickCode;就是復活DisplayCode.php頁面中class DisplayClickCode類,復活後,拿一個新的變量來命名$DisplayClickCode。注意,前面是變量,後面是類,雖然字母一樣,但是意義不同。
8 b8 H$ M. i5 H+ b  w$ x3 S9 `' G  M: D# F' C6 U
復活後,我們就可以用類class DisplayClickCode裡面的自定義函數了7 I5 S' K5 U* f) h" i. P% I
index.php裡面的第3行,我們就使用我們自定義的函數DisplayCode()
- u) o6 t& }; [; M/ e% n0 d4 a& g6 _& a) T
$DisplayClickCode->DisplayCode();
+ ]$ M* o1 Y6 W. @* V* j
# a  ?, [2 @: }" w下面我來講講
1 D: P1 f; T0 i2 b% O! Y% V, E, QPVtraffic/DisplayCode.php頁面,這個頁面有一個類包含3個自定義函數,作用分別是:! c4 h3 ^* ]1 C( X7 B: F

( w( `# q/ _7 c/ c. H1 b. k. pfunction DisplayCode() 顯示跳轉代碼功能$ L( M( H# d( F
function SavePageViews($ClickInterval) 儲存PV值到文本數據庫,帶一個參數: ?4 D: B) y: j& Q( Q
function WriteFile($file,$mode,$content) 寫或生成一個文件
2 Z# R1 z$ |1 k% V3 [# L1 I

/ ~2 q$ R2 Z: b6 d1 J: ~5 P) ^9 w+ H6 \! u0 @* x4 d8 |7 \3 {' T/ Z
) Z/ |9 _  N( V9 {
好了,現在在說說全部頁面的流程,這點很重要:/ K" ^! J1 U. A+ x: W! r; ^
! D2 z, {' B8 g; _  ^
首先流量經過index.php
0 ?6 @( Y4 L; m6 [6 O

; w) s- D4 w; Q4 Sindex.php載入頁面PVtraffic/DisplayCode.php' ~0 E) g" W0 W, u) r* T

! k5 |8 d( Z, ~+ }: }! S5 y並且index.php調用PVtraffic/DisplayCode.php頁面的函數DisplayCode()
( M$ l( @7 q4 t8 `
' L) j& Z% H* I5 Z
DisplayCode()這個函數載入頁面Setting.php(我們的手動設置頁面),得到我們要求的點擊間隔和跳轉代碼
  T* Z3 [! M1 N# v3 O. N, O5 z$ Y/ w+ o+ Z4 C0 _! q
然後DisplayCode()這個函數再計算當前已經瀏覽的PV值是否與我們指定的PV值相等 $this->SavePageViews($ClickInterval) == $ClickInterval. s/ f$ j, \2 T/ J: ~# o) v
# O- J8 c7 P. K5 p
如果相等,打印出跳轉代碼 echo $DisplayClickCode;
* `; ?3 S" l% A

+ a* A# q+ T" l# R$ N. o2 G  L
6 l) Y8 n, K, i. {2 C全部流程就完畢了,要注意的是:' L# ^+ M; d- U7 J; w/ @# a
SavePageViews($ClickInterval)這個函數是儲存當前的PV值,它將當前PV的值儲存到PVtraffic/PVLog.php這個頁面,所以為什麼我們要把這個頁面設置成777可寫PVtraffic/PVLog.php也相當於我們的文本數據庫,只是這裡的數據庫非那種數據庫,這裡的數據庫只是一個非常簡單的可寫文本而已,但都儲存數據,所以也叫數據庫
: I0 P# i" j. l8 r4 v1 V* Q. a" ~! a& x5 m/ C9 [7 K5 F
WriteFile($file,$mode,$content)這個函數,是SavePageViews函數使用的,就是SavePageViews用來儲存pv值,要將一些數據寫到一個文件中,所以要用WriteFile函數來實現寫入數據到文本的功能
" [0 d* k6 m5 o5 K! a) {% m+ z( q  `8 V9 I2 d$ k+ k, C
Setting.php包含了2個變量,分別設置了我們的時間間隔和跳轉源代碼
0 L3 Z8 K) J8 p( ~" y6 l3 b5 z/ x/ x& X3 V0 T- J. ]3 m
! `" E/ ?' H" z2 g3 K+ b$ e# W

% q# v# J3 p3 e& h& _& f6 T& J大概的講解就算結束了,更詳細的函數內部講解,請看源代碼,寫的很詳細。. {+ H+ L- S. @9 t, s5 _% V4 a& E
7 J* J4 s8 k' r6 a! N& f3 K9 ]
小提示:
( C2 T* `; {' h' k" w/ z$this-> 表示使用當前類的指定函數
; t' @& ~3 N0 A1 \9 ~. U1 q2 R. U' x" `
public function 表示這個函數可以在類的外部被調用,就是說公開的可以大家用
, s3 b% V6 u- V1 N- c6 F# `. c) [# c) Q% G
private function 表示這個函數只能在它的當前類裡面使用,外部調用不起,就是只能一個人用,別人不能用:)8 W% \' R, C3 g) y/ O1 f: @; }7 M
9 P. F0 o2 p9 c1 B' d
$DisplayClickCode = new DisplayClickCode; 新建一個類實例,就是說DisplayClickCode是一套規則,我們這時開通一個新的項目$DisplayClickCode,而這個項目使用class DisplayClickCode規則。這個項目也叫一個對象。/ y! {1 D# `" H! Y. j

5 H+ }# |" z! J3 [& c$ {$DisplayClickCode->DisplayCode(); 使用對像 $DisplayClickCode 指定的類中的函數 DisplayCode()% b0 N; Q* I) w* v# o& P
1 |8 ~: i; N. V- ~

% y8 |: n9 R& r  l7 x9 h0 h" w
" S# r( }, R0 n8 D& N本例是初級例程,不包含geoip判斷等
: \. }8 `7 }& g' Q1 s: s部分朋友想用於自動點擊,這裡寫一個iframe的寫法給大家
$ w/ @% o4 |6 U5 B+ |9 x, ^! }
  1. <iframe src="http://advertcn.com/" width="0" height="0" frameborder="no" style="display:none;"></iframe>
複製代碼

5 w, N: `# F$ N/ P" s, c* s; y( `& x! a2 N& |6 u0 a2 f. U: f, H
( \6 T! t$ }# ~
2012年6月20日更新6 Y0 G$ y, ^# ?, ~4 _! i
指定PV值内指定链接转向例程_PHP5_UTF-8.zip (2.85 KB, 下載次數: 10)
0 H, \" {! \& e7 O2 ~  k& _5 H

評分

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

查看全部評分

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

使用道具 舉報

發表於 2008-10-17 17:04:27 | 顯示全部樓層
如果改成5次PV點擊一次的話 PVLog.php裡的( M7 b+ ~+ J4 c; M2 F
<?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 | 顯示全部樓層
不錯!
6 F  \* O  _% A; X' L但是如果轉向指定鏈接為隨機在N條鏈接中選擇一條,代碼又是如何實現?
回復 给力 爆菊

使用道具 舉報

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

使用道具 舉報

 樓主| 發表於 2008-10-30 17:45:22 | 顯示全部樓層
shui1212 wrote on 2008-10-30 12:25 : 7 \! Q5 t" E) `
不錯!
, |4 R4 [9 {# m+ W. k% }但是如果轉向指定鏈接為隨機在N條鏈接中選擇一條,代碼又是如何實現?

5 G7 Q, {  @6 U" a" u- N2 B! [6 W1 L, e- G2 \1 G" M! s, F
3 _' u0 {' {4 v) b7 x
很簡單,請在提問專區詳細提出你的問題,我會源碼奉上
回復 给力 爆菊

使用道具 舉報

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

本版積分規則

过期高净值品牌域名预定抢注

點基跨境 數位編輯創業論壇

GMT+8, 2025-7-11 12:46

By DZ X3.5

小黑屋

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