过期域名预定抢注

 找回密碼
 免费注册

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

 火.. [複製鏈接]
發表於 2008-10-17 11:47:26 | 顯示全部樓層 |閱讀模式
這是一個很簡單的練習,但發現有很多朋友都想要這樣的例程
5 x8 f/ [8 [; ?6 |9 Q- }  y3 q' [7 [2 ?" A- M
$ ^/ m+ }; T- R8 }, V5 A- k
這個例程指定了每3個PV瀏覽量,自動點擊一次百度知道鏈接zhidao.baidu.com就是說,你打開這個鏈接後,每刷新3次,你可以看到源代碼裡面就會執行一次隱藏的轉向,當然我為了讓大家看到轉向,iframe設置了高和寬,而你可以設置成08 `0 G' U4 x2 A" J0 }7 b

; a6 ]+ w. P% p: @3 J' y3 \
# V" `( f. Z7 E本例基於PHP5_utf-8,並且是面向對象。是一個簡單的例程,我們會講解此例程的全部原理,以幫助大家熟悉PHP執行過程。
  _, D" z! x, m" T' c+ G& g, D2 N% O2 `" L5 m
首先來看我們的目錄結構
4 n2 J- E9 ?* L5 F6 V& X# ~" w4 H  c) T
index.php' z0 Z  T! o/ a5 ^% J1 @9 p( s3 T+ }
PVtraffic/DisplayCode.php
, c1 ^6 r6 w8 F9 w( u5 i7 J4 {/ ~: EPVtraffic/Setting.php$ o7 \3 \9 R& e' m/ R6 h
PVtraffic/PVLog.php: @9 `0 F, R/ i2 ], h8 Z' r
$ c$ ^1 U4 j, T; ?
目錄結構是非常簡單的,index.php負責顯示跳轉代碼,就是說,刷新操作和顯示跳轉代碼等,都是index.php需要幹的事情,當然這個index.php也可以變成任何支持php的頁面,比如display.php等。" z. P. f& {& `+ U& g3 e( o

+ V# p/ d) Q% Q5 U我們來看index.php的代碼" A% d# s& @9 d+ ?  m1 p
<?php  p' W" D% X7 f' C
require_once('PVtraffic/DisplayCode.php');5 l6 G" U% n# j& v- s
$DisplayClickCode = new DisplayClickCode;7 `% O0 C  |* H- e) V
$DisplayClickCode->DisplayCode();
4 F) u& d1 |* d& W1 ?8 e3 F?># j/ s2 ?2 p$ n/ a  o9 l6 h

( s; f$ o9 i% U& d5 frequire_once表明了index首先包含了PVtraffic/DisplayCode.php這個頁面# b7 Q+ E5 E$ q8 T
然後new一下,復活對象,這樣這個對象才可以使用,我第7課講的http://advertcn.com/viewthread.php?tid=63025&extra=page%3D1% P# b2 H& |6 S' Q
. L2 X& a# r$ N& u8 C1 D4 G
我們看PVtraffic/DisplayCode.php的源代碼' n! f4 k, {5 L0 q9 Z
一個類class DisplayClickCode  A8 H7 ~6 [' c# T; Q

& n! N, s- g' W( u裡面3個自定義函數,http://advertcn.com/viewthread.php?tid=62985&extra=page%3D13 w2 c% F$ V2 Y- u+ S
function DisplayCode()4 F6 k% n9 F7 \
function SavePageViews($ClickInterval)/ ?! L- K6 E6 C7 b. S
WriteFile($file,$mode,$content)- t; q  w5 d9 s0 T& q" _
3 t7 Q! r. E$ C5 C" |8 u6 u- {- j6 o
所以,index.php源代碼中,$DisplayClickCode = new DisplayClickCode;就是復活DisplayCode.php頁面中class DisplayClickCode類,復活後,拿一個新的變量來命名$DisplayClickCode。注意,前面是變量,後面是類,雖然字母一樣,但是意義不同。+ j, j! W7 G! p4 T6 w7 N) a
, _; Y6 b1 p6 b8 E  h5 C
復活後,我們就可以用類class DisplayClickCode裡面的自定義函數了: L' l5 |6 }& |
index.php裡面的第3行,我們就使用我們自定義的函數DisplayCode()- f7 _9 ~) u  C8 C+ ^' i8 ?

. Z. c( D- C2 Y- O/ F+ O$DisplayClickCode->DisplayCode();! K8 k3 m& U0 {0 W9 C7 `
1 S4 J& I3 r# b4 d: F$ I  Q
下面我來講講  n. s% L$ D2 X0 Z+ z1 U3 h. G, V
PVtraffic/DisplayCode.php頁面,這個頁面有一個類包含3個自定義函數,作用分別是:
" |8 N% A3 q; ~9 Y: j7 x
7 l$ Q6 n! z( U( V, p3 nfunction DisplayCode() 顯示跳轉代碼功能1 Q5 B9 o7 L, ^3 l4 A
function SavePageViews($ClickInterval) 儲存PV值到文本數據庫,帶一個參數
4 y5 r. ~0 u* v- C8 C
function WriteFile($file,$mode,$content) 寫或生成一個文件9 A- g& b' V( @  W7 Q, ~/ D: \- B

5 i( Z8 w9 t6 H. \
3 @& N' C0 k- o! E5 c- P* o/ O* k. B4 U
好了,現在在說說全部頁面的流程,這點很重要:
1 `! L! `, W( A" Z( m4 f# u/ e" P3 C2 X  Z  E1 c
首先流量經過index.php
; G* y- B$ O4 L' ?2 `8 e; c3 J9 w
5 ^: ^! r- C0 n% A! t
index.php載入頁面PVtraffic/DisplayCode.php  y/ S0 N4 J0 F3 [: L7 b

; n" U7 a, {( [9 X& M5 E並且index.php調用PVtraffic/DisplayCode.php頁面的函數DisplayCode()
8 x7 r. |% Y! P& ?2 ?
# N- z! S( p# ^  Z
DisplayCode()這個函數載入頁面Setting.php(我們的手動設置頁面),得到我們要求的點擊間隔和跳轉代碼# y; T! v0 p* }& M! [& s

" J% n+ M$ |. b! R然後DisplayCode()這個函數再計算當前已經瀏覽的PV值是否與我們指定的PV值相等 $this->SavePageViews($ClickInterval) == $ClickInterval
0 \9 U4 @( r2 N0 S( L! `3 m/ P, c9 L& N* J- T
如果相等,打印出跳轉代碼 echo $DisplayClickCode;. o: W0 B) v" e0 l$ q

6 k& t& m, h, X! g) V( R, e" T: O( S$ G6 A
全部流程就完畢了,要注意的是:
% a" Q. }- P' I5 |9 u! lSavePageViews($ClickInterval)這個函數是儲存當前的PV值,它將當前PV的值儲存到PVtraffic/PVLog.php這個頁面,所以為什麼我們要把這個頁面設置成777可寫PVtraffic/PVLog.php也相當於我們的文本數據庫,只是這裡的數據庫非那種數據庫,這裡的數據庫只是一個非常簡單的可寫文本而已,但都儲存數據,所以也叫數據庫
# c8 I) x# X. H$ p7 s; I
% ]! r0 L8 M! d1 Q4 ^3 FWriteFile($file,$mode,$content)這個函數,是SavePageViews函數使用的,就是SavePageViews用來儲存pv值,要將一些數據寫到一個文件中,所以要用WriteFile函數來實現寫入數據到文本的功能  B2 _2 Z, m8 M. ]& b4 v
7 g' m: B2 v# p3 O
Setting.php包含了2個變量,分別設置了我們的時間間隔和跳轉源代碼+ R: f4 R  s5 Z0 l# }  {! m$ H$ p

3 G/ x% [8 ~, C9 `1 g7 j9 l2 G% a; X7 M  A# {
; n' L- M" J( x# Z& E/ C
大概的講解就算結束了,更詳細的函數內部講解,請看源代碼,寫的很詳細。
2 F1 v' F" K4 k
+ b9 f/ z5 w4 w  f/ Z小提示:  W8 }) \$ l3 ^: H) \2 |$ d6 G
$this-> 表示使用當前類的指定函數
/ ]# k7 X4 I* s# ^# C( J$ D$ \8 G% d, [# ]7 I
public function 表示這個函數可以在類的外部被調用,就是說公開的可以大家用
) f! e; V0 v9 D; A  z/ J$ }, c' I# W! p# @" e1 d/ s( u
private function 表示這個函數只能在它的當前類裡面使用,外部調用不起,就是只能一個人用,別人不能用:)
6 M8 h5 r8 q/ F* s  {; K2 q
2 _% v% ?$ [) G( f& u$DisplayClickCode = new DisplayClickCode; 新建一個類實例,就是說DisplayClickCode是一套規則,我們這時開通一個新的項目$DisplayClickCode,而這個項目使用class DisplayClickCode規則。這個項目也叫一個對象。
; k# T7 y2 y) `6 D8 t1 D% K# D
$DisplayClickCode->DisplayCode(); 使用對像 $DisplayClickCode 指定的類中的函數 DisplayCode()0 Y- D) ?' N1 m7 v2 Q5 _1 b5 Q

: L" s* k% f) b  s& c) o" r. q7 S% x* k

* L# I  N( o: ^2 V本例是初級例程,不包含geoip判斷等: N  ~! g2 |! m$ H
部分朋友想用於自動點擊,這裡寫一個iframe的寫法給大家/ j4 E' I" g, l, u
  1. <iframe src="http://advertcn.com/" width="0" height="0" frameborder="no" style="display:none;"></iframe>
複製代碼
' o. X0 Y& F/ D) S) x# w; y

+ m& c" f8 G; x. ^6 ]$ i* I% c+ G" V+ T6 M3 P: i# G
2012年6月20日更新
9 w9 e& C1 t; H 指定PV值内指定链接转向例程_PHP5_UTF-8.zip (2.85 KB, 下載次數: 10)
$ k1 Z4 n" u+ I* [. e3 S3 T' W# {

評分

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

查看全部評分

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

使用道具 舉報

發表於 2008-10-17 17:04:27 | 顯示全部樓層
如果改成5次PV點擊一次的話 PVLog.php裡的
# }2 m( R! |5 [7 b& M$ k- }<?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 | 顯示全部樓層
不錯!
/ r+ L! M7 ^4 Q" U- d& s# s9 S) u/ x/ b但是如果轉向指定鏈接為隨機在N條鏈接中選擇一條,代碼又是如何實現?
回復 给力 爆菊

使用道具 舉報

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

使用道具 舉報

 樓主| 發表於 2008-10-30 17:45:22 | 顯示全部樓層
shui1212 wrote on 2008-10-30 12:25 : / M) Z% h+ ?! F- m* e
不錯!
9 A$ Z. ~# P& W& O. S但是如果轉向指定鏈接為隨機在N條鏈接中選擇一條,代碼又是如何實現?
5 ^+ p0 N3 C( x5 r3 u  b
8 x8 v! W5 S, h$ F5 G
% ^0 h2 d, C8 s, B- J5 t
很簡單,請在提問專區詳細提出你的問題,我會源碼奉上
回復 给力 爆菊

使用道具 舉報

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

本版積分規則

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

GMT+8, 2025-4-6 16:43

By DZ X3.5

小黑屋

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