本帖最後由 Seanhere 於 2013-12-3 21:52 編輯
. ]8 r# h, B. }" [- m- U. e8 z2 ^" T/ g9 h0 c
這個方法是用來更新用來做外鏈的站群的,站群定期更新。由於站群量越來越大,更新一遍很費時間,但又不願買市場上的站群軟件。所以才想出了這種方法。/ q/ R. r0 `. v
自己雖有一些編程基礎,但沒學過php,是邊查語法邊寫的,程序可能有些笨拙,高手不要見笑。- <?php
/ }+ V7 s0 Z# m - //數據庫參數
g( q. q' Q: ~. b - $dbuser='';
3 F$ m( N" l; Z9 G8 t6 n+ j! Z - $dbpwd='';
2 p3 |2 {; I1 F+ k/ Y5 C - $dbname='';
& u5 k0 m! ^$ r, I4 I6 A& z: m& g - $dbhost='; Z/ v7 c# d& w& Z6 ^
- $dbtable='';
1 S; G% y2 m+ }2 v - " O0 O N! i! c6 Q2 S
- //設置讀取路徑
7 C6 g) u: _% ~" r, v8 J& G - $rdcontent='xxxx.txt';
: F( A2 R' W$ j% ?$ U - $rdtitle='xxxxtitle.txt';" W# f5 s, E$ ~% t! h) a
- $rdlink='xxxxlink.txt';# _1 J1 Q3 b& Z) P( @+ r0 [
- 0 j( \; m% N0 t! L3 f0 G4 q( T
- //讀取插入鏈接,並設置發佈概率
2 Y/ k+ W8 V5 c) i8 N" K - function gen_link($rdlink){7 C0 r+ y1 r, i. {
- $data2 = file($rdlink);
! y# z3 j$ W$ H% ?: b; K0 ~ - $num2 = count($data2);
8 ~! b$ h5 l2 j! i - $id2= mt_rand(0,$num2-1);
" r" t6 F2 M1 J* U8 r - $random= mt_rand(0,10);
1 W+ M9 p2 d- h - if($random<5)8 k: h1 `% D Q3 S9 W% s9 U! L
- $link= trim($data2[$id2]);) F- [0 { Q* K/ S$ ?- [
- else
- {. M3 i( [8 Z# D - $link="";, y0 h8 {. e: S/ T
- return $link;
' i; U$ x; f9 j% u' ? - }5 G7 T$ R$ z) r( _. O( x
- & [! ~ I& }0 B$ d6 S+ n2 w3 B2 V
- //生成文章2 f8 Y3 v. H- E2 k& F( ?4 R5 m
- $str = "";, W$ z' L" L& | @
- $title = "";
b- x: ?% q7 I% I5 I5 }( g7 O6 c; K
- |$ J# L& Y4 c& G# U8 B* q5 r- $data2 = file($rdtitle);
7 b( l, O; F( g, l, _ - $num2 = count($data2);
1 j# ?+ {3 E: v& {8 K - $id2 = mt_rand(0,$num2-1);& q2 R9 z/ j2 b& @
- $title = $data2[$id2];
4 G' C& \, s) ]4 i k. |8 C
; |3 F0 g/ E/ H- $data = file($rdcontent);( ]0 c k s4 g* w
- $num = count($data);6 s8 W0 j, W0 J: O9 J
- 0 _2 B# ]5 a1 q% {* m; U
- for($i=0;$i<25;$i++){5 X" ^+ Y5 R- l, v4 y* C3 {
- $temp=" ";
Z. F/ S3 y ^" d& M/ g( | - if(($i%5)==0)
. E% T' U$ z% S' c; W. U- _0 E3 ] - $temp="
W4 J. N: k( J) ~& Y1 e - \n";1 }6 R/ F& a! q3 Q& u
- elseif(($i==7)|($i==21)){% o2 S6 v6 r& Y/ A" D
- $links=gen_link($rdlink);# l% a: e8 Y7 a+ O6 \+ h1 i) {
- $str=$str." ".$links." ";
( B* o% y+ j2 \0 j7 @5 {) E - }
+ `6 Q( Q; v, u& ~* F: ?& K$ p - $id = mt_rand(0, $num-1);. L* ?, c( k& n* q, c
- $line = trim($data[$id]);- X e2 W$ l! }) b) f% k
- $str=$str.$temp.$line;
/ w' D @: }7 _ - }4 E2 @% D' l6 b7 z. m
+ o. O3 j/ M4 n4 P4 z- //生成slug
p, d/ K' y& \2 |; ?5 _& Y - function generate_slug($len){
2 j1 _' `- v2 d# F. B5 m - $chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
5 t0 F8 y3 x3 A5 S - $slug="";
8 G# {2 [' N) T* ] - for($j=0;$j<$len;$j++){. H4 f6 [3 `, n/ {3 N1 v" A
- $slug .= $chars[ mt_rand(0, strlen($chars) - 1) ];% c. M$ X' m( Q) g7 n" {
- }
/ h2 B5 j8 }% Z u$ m - return $slug;
2 `6 U+ P( [% {; q8 B9 d) G4 Y1 X - }
# A+ g3 l3 d" ^3 x+ w5 h1 F - $slug = generate_slug(17);
8 |$ A B- _; ^+ A- s" X7 s - - W n ^; }6 j* p" U* u
- //獲取發佈時間8 `+ y1 G0 L @0 |
- $datetime= date("Y-m-d H:i:s");( Q) Z2 c) O6 u# d, v: g* W
- 9 D& [+ W0 B5 n- {1 @8 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')";
9 e+ M& @% h% p9 |% @7 V2 P9 p9 R
# f& |. W% H2 l; T$ |; ?, ^- //連接數據庫並處理數據" P# V- J5 i0 ]! C( a* k, ]; W9 A. D
- $con = mysql_connect($dbhost,$dbuser,$dbpwd);2 s& l! E: O$ V
- if(!$con){
7 Z; {" y7 r1 K9 g - die('Failed to connect to database! '.mysql_error());1 d$ t2 T9 C: t, K! `% P+ k
- }else
6 {& e' {: s' D* [% Z - echo "Suscess to connect to database!( p1 U* `5 n- i L% d+ R" g
- \n";
5 _) \9 R0 D) k+ K4 T' f, z
: o& e) D* y O* }' b9 H- mysql_select_db($dbname,$con);/ q, ?. ?* @( o% p2 Y& w
- & R! } E! F+ E2 D# x; L( F
- $result=mysql_query($sql);
) w) L# u6 \% p( G# f) ]: Q, `
, o* l% A/ R8 j" q* v# f9 B" n4 d- mysql_close($con);
0 Y* }' g. S: u - $ I1 g7 F7 ]2 c* x9 i9 ]" o
- if(!$result){
7 D9 @7 v2 L" ~& N* P9 e! S4 w - echo $result;
; }9 r2 w5 H6 [5 {8 r u - die('Failed to post article! '.mysql_error());
- c, l. O+ y4 k7 O5 _ - }else" [: [5 u* _% i3 M9 A# I" w2 D
- echo "Suscess to post article!\n";
0 \) ~0 L+ F& V5 M( F
1 ~/ P; w% g- N) R2 O- echo $dbname." is done";
* p/ U* E0 X8 C5 ^, X$ b' }; o - 5 }, Q0 L2 w) |* W' B
- ?>
複製代碼 文章插入到wp-posts表中,文章id自動生成,在插入時是未知的,所以就在插入文章的同時無法再將id 插入到wp_term_relationship , 這樣的結果是發佈的文章是無分類的。所以不太明白關於「讀取id」的方法,請指教。
; q9 ?8 k/ e8 e4 t/ U2 \" v, c+ }: s, X
文章的slug我用了隨機生成的方法,其實最好的方法應該是用文章標題來轉化,但那樣麻煩些懶得費事。文章作者默認為1,就是管理員。文章內容我用了Yoo版的方法:http://www.advertcn.com/thread-12629-1-1.html。能保證原創性,但損失了可讀性,由於是做外鏈用的,應該關係不大。
" D. X6 e2 ~# O/ K( j9 o+ E! i) z% s) H( t7 r
如果想將文件夾下的文章隨機發佈的話,可以先將文件夾內文件遍歷,然後隨機抽取發佈的方法。) I9 @3 v& ^" [5 p+ a
這樣做成php頁面,某站目錄下,使用VPS的Crontab 用curl語法定時向該url發出請求,就可自動發佈一篇文章,如果想要多篇的話,可以使用循環。
% [1 C U. V0 l7 I* W. M- Z& o+ T5 v5 `2 D( f4 k
# U7 c6 L; L0 c" P, `6 A; u8 q: p3 j2 a4 X7 H3 |- y1 P
- ~8 w7 T. ~/ n l x
|