本帖最後由 Seanhere 於 2013-12-3 21:52 編輯 4 v. N) d/ [$ S0 K
& R4 s8 x+ Q# \% M+ D) J2 [ z這個方法是用來更新用來做外鏈的站群的,站群定期更新。由於站群量越來越大,更新一遍很費時間,但又不願買市場上的站群軟件。所以才想出了這種方法。) f3 x l8 N: V1 Z3 O
自己雖有一些編程基礎,但沒學過php,是邊查語法邊寫的,程序可能有些笨拙,高手不要見笑。- <?php
% O! e; l! D0 o% x" R0 ~4 P - //數據庫參數
; y% R1 h6 u2 ?1 q - $dbuser='';
& R9 {. f! o5 ~. h+ U# x6 ?7 K - $dbpwd='';. T3 S. v0 @ V1 }! c- Y' Y
- $dbname='';
9 Y: |6 _' U, U9 i+ ^3 l6 ~3 A - $dbhost=';. a. n6 o8 g# E9 @
- $dbtable='';4 l7 T% R8 O5 w/ g( K
/ A, n6 a- M, P0 H3 z0 U' P& P- //設置讀取路徑. y5 m9 J5 w9 H
- $rdcontent='xxxx.txt';
" Q' w. |# n' ^* Y9 w: D6 | - $rdtitle='xxxxtitle.txt';
. t( k' D# B/ d/ |/ t- [ - $rdlink='xxxxlink.txt';
1 F$ k; Y3 ^& |" H, u! O) u
/ r$ K. p' x$ n" s$ x6 R, [3 d4 ~- //讀取插入鏈接,並設置發佈概率4 N6 U/ A2 V* F1 E
- function gen_link($rdlink){9 M) V/ K k+ @0 b& w
- $data2 = file($rdlink);
. C7 n' J) p* y) @$ N4 N$ }% F - $num2 = count($data2);
/ s* P9 q2 x) I, t( Y) p8 Q7 Q - $id2= mt_rand(0,$num2-1);9 D" Y' e( `, V
- $random= mt_rand(0,10);5 o( g/ g2 m4 u8 Z
- if($random<5)) c! N4 O2 O* f0 O
- $link= trim($data2[$id2]);
3 j* S& A" B* U% q - else4 B( F, q. M3 l# r
- $link="";
" o! X: E9 f" T! Q3 D. M: { - return $link;% V U5 Y1 u1 V+ L$ j
- }' k A# P0 F7 x! X: {, D
- , Q4 R: u& c9 @3 @# y
- //生成文章
/ A5 v0 }5 Q6 G* s5 ?5 S4 O - $str = "";1 Y3 J. }+ X% `' P: x
- $title = "";
1 N6 M' K# P1 M+ j4 x* | - + f l. Y" }/ X6 K
- $data2 = file($rdtitle);
7 k3 y. y" `: b4 S! x - $num2 = count($data2);
! k! Y, z, m' [. X - $id2 = mt_rand(0,$num2-1);4 C* h( C& D+ C8 o
- $title = $data2[$id2];% M6 e) [. b+ I" h9 ^
- " _1 a Q7 p5 W* }% W
- $data = file($rdcontent);' r# [! B% Z, S
- $num = count($data);. j5 s4 v4 Q' |
, Y4 E4 I/ d& v- T- v2 _6 l. Z- {0 m- for($i=0;$i<25;$i++){/ ^: |" l; C4 n$ r* L% p
- $temp=" ";
8 B% o) {4 g5 @6 B; `- P' l - if(($i%5)==0)$ F7 o" i# A6 n/ C/ W- f( U, j
- $temp="
% ?; X: B" l n) F. S' x - \n";
: o' x# [% g" ^0 O4 p: d. {' @# j - elseif(($i==7)|($i==21)){
( u/ u# R/ L5 F2 k) G( O7 X - $links=gen_link($rdlink); B- g" ]) S0 s% n( v
- $str=$str." ".$links." ";
' I) g% }2 M9 X8 i0 ~& P, x - }
7 Z g6 z0 x- A8 S7 L& W - $id = mt_rand(0, $num-1);
v+ Y( X4 \9 | - $line = trim($data[$id]);
7 G! t( m; x, @% z - $str=$str.$temp.$line;5 J1 v; a1 W# a9 [3 |* F% m- s
- }
- K3 O/ A- A0 A' y; _" I6 ~
9 l/ W6 y3 m. t# Q- //生成slug* q2 P* U) H t& o P8 ?7 Q1 U
- function generate_slug($len){% L4 l) F; \; S1 e9 m$ `7 G, G( L
- $chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
# n& X5 k+ C, J6 h! X - $slug="";% F, ]6 j" w( [: Y e+ c p
- for($j=0;$j<$len;$j++){; R9 T$ i2 f$ _( E! A
- $slug .= $chars[ mt_rand(0, strlen($chars) - 1) ];
3 Q Z g) B, i+ B: K - }% ~6 y8 T8 Y( J) Y" a
- return $slug;
4 X; X. I h0 d- y- o/ v5 P - }, D# k& d& i w. p1 G, g8 q5 d
- $slug = generate_slug(17);
; L) l! `7 y3 t6 D) Y. S: O- |% a% C+ ] - + h1 e& u$ P" k' A
- //獲取發佈時間
; c. y. O. w; K, E - $datetime= date("Y-m-d H:i:s");
. E' A; a" H4 q8 T/ O
( U# B6 R: j& B# J" j9 u8 o' R- $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')";
- m- E1 `. D1 i3 M% | - 8 V1 J* b, G$ V: I; L
- //連接數據庫並處理數據4 ?/ p) ^5 s$ C& U
- $con = mysql_connect($dbhost,$dbuser,$dbpwd);
# W' e- v: K8 X/ N - if(!$con){, C5 m4 {8 [3 { a8 H
- die('Failed to connect to database! '.mysql_error());0 W: @4 y5 {4 e7 c
- }else: N, a) y, p* D# s4 \6 p
- echo "Suscess to connect to database!* G9 r" |( _4 @9 o! L) S
- \n";
5 N! o+ A- v% n" B - u& g. e) R: C. z
- mysql_select_db($dbname,$con);+ F1 f, @6 [5 z9 L
! y% G9 }) _% Q$ w- $result=mysql_query($sql);
( C. |9 B0 l2 ] \3 K1 J1 l - ' q L8 z% e- L, i: y" s
- mysql_close($con);, g, J5 h, y- T# O, m; x, H- _* S% I) y
- R. `1 ~+ M6 N* t! @/ K7 T# ?
- if(!$result){7 y; B5 y" A7 J1 b# R" A
- echo $result;
, l" x5 a/ [( V: v: Y - die('Failed to post article! '.mysql_error());) ?0 H6 y. P+ T5 Y/ B) d
- }else, W$ m: ~2 R. f6 c# p6 b
- echo "Suscess to post article!\n";
1 G! S$ U% ]+ b2 d2 |" B
, P% \' |8 D4 ~1 L- X1 V1 a- echo $dbname." is done";8 O' K; a4 O2 |' E; |9 G
[/ } J I6 e5 w+ @- ?>
複製代碼 文章插入到wp-posts表中,文章id自動生成,在插入時是未知的,所以就在插入文章的同時無法再將id 插入到wp_term_relationship , 這樣的結果是發佈的文章是無分類的。所以不太明白關於「讀取id」的方法,請指教。7 d" B( f/ }: D7 t
- A" O7 q% [0 a9 S1 Q) `! L
文章的slug我用了隨機生成的方法,其實最好的方法應該是用文章標題來轉化,但那樣麻煩些懶得費事。文章作者默認為1,就是管理員。文章內容我用了Yoo版的方法:http://www.advertcn.com/thread-12629-1-1.html。能保證原創性,但損失了可讀性,由於是做外鏈用的,應該關係不大。
9 Q; \4 \; ~$ H7 T* ~
! r( p9 W3 D, B$ {+ r如果想將文件夾下的文章隨機發佈的話,可以先將文件夾內文件遍歷,然後隨機抽取發佈的方法。5 a. p( T3 A+ c6 q2 c
這樣做成php頁面,某站目錄下,使用VPS的Crontab 用curl語法定時向該url發出請求,就可自動發佈一篇文章,如果想要多篇的話,可以使用循環。
# }! F" n9 {6 Y' o% Q. f+ n* a8 l( j0 H3 b( G
4 G7 P7 M, |1 [, w) r
. Z; z' g8 Y% q5 X; h. H o, v. B8 o( o, t/ ^5 [1 j1 M
|