本帖最後由 Seanhere 於 2013-12-3 21:52 編輯 + s* L9 s, ~2 M( b4 |
* b6 X. n+ h9 O7 [0 a* q( g
這個方法是用來更新用來做外鏈的站群的,站群定期更新。由於站群量越來越大,更新一遍很費時間,但又不願買市場上的站群軟件。所以才想出了這種方法。
$ b& S4 G- l' H4 a. c自己雖有一些編程基礎,但沒學過php,是邊查語法邊寫的,程序可能有些笨拙,高手不要見笑。- <?php
! G) s1 z$ }+ a5 J - //數據庫參數/ ~ G4 x/ q9 {' u$ f, ~( R
- $dbuser='';, j+ E% D. a: q* A+ R6 j
- $dbpwd='';
j1 v# R$ Y1 L5 g - $dbname='';* K, f+ `* N# D+ N) K( c
- $dbhost=';9 X9 h# ^. y0 q& u) Y( @" |- o
- $dbtable='';
: u+ s& ?3 k& z0 t) l& p
5 ]. B: t. h6 ]3 r; |, e& Z$ o9 \0 z2 i- //設置讀取路徑
6 ~& P+ }4 {# N- `$ |1 h - $rdcontent='xxxx.txt'; b3 c5 F. k9 ?/ g7 k' M% y
- $rdtitle='xxxxtitle.txt';2 Y$ D2 _' m8 F- i, e: a
- $rdlink='xxxxlink.txt';: ^: v( f& M2 A. S! o& u% s* m% v
$ N" ]. }0 @0 ~& D- //讀取插入鏈接,並設置發佈概率, `) S/ n8 b2 W2 k2 x( X0 |1 d9 y
- function gen_link($rdlink){" K) _- h; X8 S- k" i
- $data2 = file($rdlink);' ^# M9 @: D+ q2 t* e8 k
- $num2 = count($data2);
: I8 m$ j$ S; p5 Y8 p% } - $id2= mt_rand(0,$num2-1);
5 X5 e$ u! g3 G* G1 W - $random= mt_rand(0,10);8 T4 U: V# @- X3 _; F! A. Y
- if($random<5)+ Q$ b( H5 `: ~$ D) W; Y. H3 C
- $link= trim($data2[$id2]);" k1 }" P2 d' f" m
- else
$ } E% d" S+ x+ ]4 o) R7 }# K( x - $link="";$ Q) o' Z( f8 |& ?: h5 y$ ]
- return $link;
# S- h1 Q0 H; w3 {7 g - }
5 n- o9 L7 D% h2 R. Q1 | ~" Y6 N
5 |- H: a# l; [* H' g q" B- //生成文章
0 i! O( B# T+ A/ t4 ], C - $str = "";
0 L3 \9 K; } h' P - $title = "";" y' |. j8 Z6 K, O* Z* O
- 1 l5 d3 z- Q9 m! r, h1 P* l% ~
- $data2 = file($rdtitle);
- ^& q6 J% U3 j+ L - $num2 = count($data2);
1 R K/ @: `& d3 N - $id2 = mt_rand(0,$num2-1);3 n5 l& _/ Q" o
- $title = $data2[$id2];
7 ?5 a# J w5 s1 ^ - / C8 R' @7 r7 V) {, e7 U
- $data = file($rdcontent);6 W- g) \; F0 J3 M. R7 Z* l
- $num = count($data);
+ g2 a! k) _9 y) n0 Q - , [2 {0 M/ I2 U* z% g) D) Z
- for($i=0;$i<25;$i++){
7 ~! B }" p. M, O - $temp=" ";
+ b1 p! o3 b5 \, |: v - if(($i%5)==0)
6 x$ M( g; ]- C: F. A0 M9 ^5 ]. ? - $temp="
4 ]7 }9 l, }; X - \n";4 g0 s& }8 ?3 P: {0 D/ }
- elseif(($i==7)|($i==21)){. ~% o e$ N% F( p0 h$ K
- $links=gen_link($rdlink);' [. v* a' J+ g
- $str=$str." ".$links." ";
) I! s% C# ?$ Z4 J. h% Z9 Q5 j5 q, y - }
/ X; w6 [2 Y1 F - $id = mt_rand(0, $num-1);8 n4 i; q" b" _* U7 ?
- $line = trim($data[$id]);
/ h3 ^, V& p. a- G. W9 ] - $str=$str.$temp.$line;5 v& D2 B2 H! ^# c. P
- }7 B# q- v3 x) {0 d8 f5 D' J7 Z+ `8 T
- ' r) e8 j; T' K; B1 R
- //生成slug0 X* H- f/ T! _
- function generate_slug($len){
6 [' P& U% G M z - $chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
@' Q, W$ Y" V) v - $slug="";
U% h. d; |" h$ s- t - for($j=0;$j<$len;$j++){9 |& \: T, F+ o1 J' s. X6 R$ e$ b
- $slug .= $chars[ mt_rand(0, strlen($chars) - 1) ];
1 W) ]3 }& ^. {, n3 @2 {! I - }
+ n2 |5 y P) |$ t) C - return $slug;
+ m6 x$ ^( V% i' p# M; } - }
2 r6 N8 p- Y8 q - $slug = generate_slug(17);* ~5 s+ q$ @2 M
* C, a. i: s! l" X( V4 U: i: Z7 j- //獲取發佈時間: } \$ E! k( u e! m8 F' f( Z: Z. {
- $datetime= date("Y-m-d H:i:s");, v( ?- c1 ?; |' Y
; f6 b# b% i$ d" \/ @. E' n' W& Y- $sql= "INSERT INTO `$dbtable` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES (NULL, '1', '$datetime', '$datetime','$str','$title', '', 'publish', 'open', 'open', '', '$slug', '', '', '0000-00-00 00:00:00', '0000-00-00 00:00:00', '', '0', '', '0', 'post', '', '0')";( X9 y& ? P/ X+ u. c8 M
- 5 u2 B3 L% E+ A" t' H/ j
- //連接數據庫並處理數據
$ \. `5 ^: G; O8 u* ` - $con = mysql_connect($dbhost,$dbuser,$dbpwd);0 U' ~# e, {* L3 {
- if(!$con){
8 I+ x5 E$ A- }4 x) Q5 d - die('Failed to connect to database! '.mysql_error());1 r3 z' C' c; K
- }else0 i& \; |6 Z$ I2 Q1 u
- echo "Suscess to connect to database!6 W: v4 k2 q' U, Z" ~& W
- \n";, A0 B- i9 ~" q9 M
- % J" R0 e# r1 R* y3 N, J* ]4 m
- mysql_select_db($dbname,$con); U7 O$ p6 h! m4 D* J7 v1 Z! R% O$ h' y
- 6 m9 U8 Z. R& x* M. |$ M6 t2 O' u2 o
- $result=mysql_query($sql);% ]. o5 e5 s4 a+ W. z2 L/ O
- ( g& g, b( j6 ^* F; K
- mysql_close($con);
/ R2 Q: B9 |' I# D# b5 @4 X% E
/ z6 G% s" T1 G4 `. o- if(!$result){ o, c2 S8 r# P3 S, _! Z
- echo $result;* Z" h+ U' _( S) H9 J& T
- die('Failed to post article! '.mysql_error());
+ F- L7 w0 E& X. }. F- ~ - }else
2 u) S6 e+ A/ y& T - echo "Suscess to post article!\n";( @6 H: c+ r. r
- 7 Y' v8 w7 u7 E# w. U! r3 z
- echo $dbname." is done";
$ h8 j( p* v5 e - . ?! e: ]; f7 w y7 [2 @# a
- ?>
複製代碼 文章插入到wp-posts表中,文章id自動生成,在插入時是未知的,所以就在插入文章的同時無法再將id 插入到wp_term_relationship , 這樣的結果是發佈的文章是無分類的。所以不太明白關於「讀取id」的方法,請指教。( }, S$ M5 j: \4 H$ F2 F$ Q$ q0 a4 U6 u
/ M- I* L5 p# ?5 L文章的slug我用了隨機生成的方法,其實最好的方法應該是用文章標題來轉化,但那樣麻煩些懶得費事。文章作者默認為1,就是管理員。文章內容我用了Yoo版的方法:http://www.advertcn.com/thread-12629-1-1.html。能保證原創性,但損失了可讀性,由於是做外鏈用的,應該關係不大。
! K4 o& W4 b5 F5 j, m* h/ u4 D2 v1 a) K) w S
如果想將文件夾下的文章隨機發佈的話,可以先將文件夾內文件遍歷,然後隨機抽取發佈的方法。
8 ^5 w$ R' O, R1 T- _3 @* j這樣做成php頁面,某站目錄下,使用VPS的Crontab 用curl語法定時向該url發出請求,就可自動發佈一篇文章,如果想要多篇的話,可以使用循環。
$ H% d" u5 t& V+ W3 d w R
9 ^- _) s: C, O( w- T; |( I1 E e6 c4 W# M. Z% x4 s7 E
) h5 L! a5 Y4 |: h# J
2 g% v) S2 E, @: M3 v7 `) ~0 @ |