过期域名预定抢注

 找回密碼
 免费注册

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

 火.. [複製鏈接]
發表於 2008-10-17 11:47:26 | 顯示全部樓層 |閱讀模式
這是一個很簡單的練習,但發現有很多朋友都想要這樣的例程8 ?7 l8 |  M/ r
* O  i9 G$ p( g; A) [
$ f  a" _, r0 y9 E+ g6 y
這個例程指定了每3個PV瀏覽量,自動點擊一次百度知道鏈接zhidao.baidu.com就是說,你打開這個鏈接後,每刷新3次,你可以看到源代碼裡面就會執行一次隱藏的轉向,當然我為了讓大家看到轉向,iframe設置了高和寬,而你可以設置成0( c1 i+ U- @: C1 `4 y1 U0 `

$ Q& T8 U  M  h2 r8 O9 i1 {* H  x
  x, a) \: m. q4 |本例基於PHP5_utf-8,並且是面向對象。是一個簡單的例程,我們會講解此例程的全部原理,以幫助大家熟悉PHP執行過程。# O3 Y9 o/ h! D, @2 ~

2 B3 ?: J  M' ?8 V首先來看我們的目錄結構
& W* o- n% ]9 O: F
( v, q* w. H" e9 G$ u# M* ~index.php% n/ ^+ c/ {3 n' r9 W; Z! G
PVtraffic/DisplayCode.php! s& E: Q! G1 P: \
PVtraffic/Setting.php9 s$ A' O7 @& U& _1 x  Y  J
PVtraffic/PVLog.php
, o) B; i( m. q& ]7 w2 r
9 G3 R2 l8 O. Q' b! J目錄結構是非常簡單的,index.php負責顯示跳轉代碼,就是說,刷新操作和顯示跳轉代碼等,都是index.php需要幹的事情,當然這個index.php也可以變成任何支持php的頁面,比如display.php等。, y3 _% h+ [5 I# H7 J; d

) h' R- y$ M3 c; s我們來看index.php的代碼' ]+ U+ W4 `( o" m- d
<?php: o1 P3 k5 l* C  E
require_once('PVtraffic/DisplayCode.php');
5 Q, `8 u2 y( }5 t8 q, R3 m$DisplayClickCode = new DisplayClickCode;5 i8 J. V  Q, G8 v- F7 P
$DisplayClickCode->DisplayCode();
# h) M' Y- x& V* p2 A2 o, ??># F# f/ Q, ^. _: a7 o( }0 b

- m5 W% X; Q1 y% o- brequire_once表明了index首先包含了PVtraffic/DisplayCode.php這個頁面2 [" ~) I4 u# b. ], W+ h2 P
然後new一下,復活對象,這樣這個對象才可以使用,我第7課講的http://advertcn.com/viewthread.php?tid=63025&extra=page%3D1
+ K' M# Q% k  L! ], e* S3 S" u& O  t
我們看PVtraffic/DisplayCode.php的源代碼$ J  D6 r2 d. q
一個類class DisplayClickCode
4 z8 \% `! z% Q8 }1 r- @5 S+ S0 s" e- F1 s0 a3 L* @3 u* R8 }8 H, S7 V. J
裡面3個自定義函數,http://advertcn.com/viewthread.php?tid=62985&extra=page%3D1
% U$ n, s2 |- i! e1 d1 C* nfunction DisplayCode()
  l# i0 W5 j4 z+ W7 ]5 Z; |function SavePageViews($ClickInterval)% n: {7 w+ J2 w& b7 @7 R# k
WriteFile($file,$mode,$content)
4 h' t. ?; p, s# M  V, R7 F8 n
0 [0 j. L. k/ D& _; h所以,index.php源代碼中,$DisplayClickCode = new DisplayClickCode;就是復活DisplayCode.php頁面中class DisplayClickCode類,復活後,拿一個新的變量來命名$DisplayClickCode。注意,前面是變量,後面是類,雖然字母一樣,但是意義不同。9 t/ K# b& b8 A1 k* F  C+ U, R8 b
+ d; L7 K1 ~/ ^( }
復活後,我們就可以用類class DisplayClickCode裡面的自定義函數了% i0 Q! @$ [  {: h7 b- l; k  c
index.php裡面的第3行,我們就使用我們自定義的函數DisplayCode()
8 O5 S) H) ?3 P+ G+ R2 M  r8 Q$ w; w5 q
7 C8 {! ?2 g# }" T4 G$DisplayClickCode->DisplayCode();
' b2 w+ \, c  w3 Q
- P; u; J; |3 H5 K下面我來講講
1 i( C/ g8 G2 SPVtraffic/DisplayCode.php頁面,這個頁面有一個類包含3個自定義函數,作用分別是:% N, y6 H' l9 m2 Q1 {9 Z! A
; s! m1 C/ M: T7 D* o
function DisplayCode() 顯示跳轉代碼功能
: |  F+ O4 g# l- `3 T# r+ [
function SavePageViews($ClickInterval) 儲存PV值到文本數據庫,帶一個參數' K. v0 u  T$ g% {% P
function WriteFile($file,$mode,$content) 寫或生成一個文件
8 E0 c/ k2 k* ?7 c( N5 i* C

7 i- q. a+ U6 C+ y1 l* N7 S1 M2 F) k7 Q5 @) S" V/ ?

7 p3 E, f- ]& S( @好了,現在在說說全部頁面的流程,這點很重要:
0 v% N  n" K' _, r5 X8 V0 g4 ]( p
8 M0 H9 [- r0 h; W: F首先流量經過index.php
. p4 X1 S; t# n$ _! k
, H. W6 G1 a! k% J* b* I" X' q
index.php載入頁面PVtraffic/DisplayCode.php
: w7 m: t. z7 Z- v8 h3 M& u4 w) c( r$ t
並且index.php調用PVtraffic/DisplayCode.php頁面的函數DisplayCode()
, ?3 g" K# v9 T/ q& C& e( A: d
" M) K* r# f7 J6 K
DisplayCode()這個函數載入頁面Setting.php(我們的手動設置頁面),得到我們要求的點擊間隔和跳轉代碼
0 ?2 ]" d  s7 R' T3 E0 ^$ i* r* F% b, |) T0 k1 b* P9 p
然後DisplayCode()這個函數再計算當前已經瀏覽的PV值是否與我們指定的PV值相等 $this->SavePageViews($ClickInterval) == $ClickInterval* T" u3 o4 z. \7 ]1 C% c0 W* J% F+ t

1 `1 r0 ~' \6 |" U) `, Y  x+ ^如果相等,打印出跳轉代碼 echo $DisplayClickCode;
2 n: M, o5 a: p7 L. S# c: }9 L

& I5 T: q; u1 H8 ]3 S: n
# U) d8 R* N) T0 M7 a# J+ q全部流程就完畢了,要注意的是:
- A7 @2 e" W3 M% o& i6 I+ cSavePageViews($ClickInterval)這個函數是儲存當前的PV值,它將當前PV的值儲存到PVtraffic/PVLog.php這個頁面,所以為什麼我們要把這個頁面設置成777可寫PVtraffic/PVLog.php也相當於我們的文本數據庫,只是這裡的數據庫非那種數據庫,這裡的數據庫只是一個非常簡單的可寫文本而已,但都儲存數據,所以也叫數據庫: M( B; [. ^, }% S

  K% _/ w, l  D3 U3 t6 f6 V3 QWriteFile($file,$mode,$content)這個函數,是SavePageViews函數使用的,就是SavePageViews用來儲存pv值,要將一些數據寫到一個文件中,所以要用WriteFile函數來實現寫入數據到文本的功能2 o/ h, }8 x7 L( b7 m9 k
- b2 N# I) c( {% o" g6 o: B
Setting.php包含了2個變量,分別設置了我們的時間間隔和跳轉源代碼
& Q# R- Q9 `0 S. O7 Q: r# t
3 z( R) [- r- i, |( X
) ~3 b% C8 \$ b+ a/ K- C% g) v2 n1 M, I9 B6 h" ^
大概的講解就算結束了,更詳細的函數內部講解,請看源代碼,寫的很詳細。7 q0 m+ y+ l8 B8 C# A+ X! R+ H

0 S8 Q2 v1 V5 M+ F  H$ z; d( r小提示:
# f1 N' c1 K* J/ ^9 c$this-> 表示使用當前類的指定函數
; q  {/ u! q# w3 X8 d# w3 x  V* N
public function 表示這個函數可以在類的外部被調用,就是說公開的可以大家用( @0 o4 A0 e  Q1 l

; j% V3 D# ]  Yprivate function 表示這個函數只能在它的當前類裡面使用,外部調用不起,就是只能一個人用,別人不能用:)
, ^6 l# ?* K/ A& H6 a* z; b+ H. u3 `  @; _
$DisplayClickCode = new DisplayClickCode; 新建一個類實例,就是說DisplayClickCode是一套規則,我們這時開通一個新的項目$DisplayClickCode,而這個項目使用class DisplayClickCode規則。這個項目也叫一個對象。
" j7 ~8 E# j6 [2 X6 T; @8 B7 u/ @6 Q) w
$DisplayClickCode->DisplayCode(); 使用對像 $DisplayClickCode 指定的類中的函數 DisplayCode()
* {* \) J" J7 F& u) g6 @5 n1 P& H2 T2 g& V

1 L7 c: p5 ~; g9 J" M* _, O' \
( ?7 {5 B" Z9 [" y0 e- C+ _5 h本例是初級例程,不包含geoip判斷等
% l/ I' ^$ X& H. W6 D部分朋友想用於自動點擊,這裡寫一個iframe的寫法給大家+ c' P8 Q2 \! x& D9 d
  1. <iframe src="http://advertcn.com/" width="0" height="0" frameborder="no" style="display:none;"></iframe>
複製代碼

, k- [. p# R" `7 y. j" s/ b3 H) q& o- F" S3 B, }! P4 ?: V$ z

" e$ g+ v) _, r2012年6月20日更新
9 d5 H! n: _/ Z: Z1 r5 V! c7 w 指定PV值内指定链接转向例程_PHP5_UTF-8.zip (2.85 KB, 下載次數: 10)
) U1 t5 y) m4 t7 k: l

評分

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

查看全部評分

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

使用道具 舉報

發表於 2008-10-17 17:04:27 | 顯示全部樓層
如果改成5次PV點擊一次的話 PVLog.php裡的
) H) R3 g& j% y, y3 h<?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 | 顯示全部樓層
不錯!4 v+ K+ b# h- g/ Q+ }. r3 ?( ]
但是如果轉向指定鏈接為隨機在N條鏈接中選擇一條,代碼又是如何實現?
回復 给力 爆菊

使用道具 舉報

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

使用道具 舉報

 樓主| 發表於 2008-10-30 17:45:22 | 顯示全部樓層
shui1212 wrote on 2008-10-30 12:25 : . m  D" ~3 X' J1 w' R" n
不錯!
( Z$ V/ q$ x, J, C5 f8 s但是如果轉向指定鏈接為隨機在N條鏈接中選擇一條,代碼又是如何實現?

8 Q3 ~2 g1 u9 h- T0 g' f, e& O: y. U4 z# t( x
2 o7 ]4 T: Z7 S" Z6 Z
很簡單,請在提問專區詳細提出你的問題,我會源碼奉上
回復 给力 爆菊

使用道具 舉報

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

本版積分規則

4um點基跨境網編創業社區

GMT+8, 2024-11-24 06:54

By DZ X3.5

小黑屋

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