本帖最後由 Seanhere 於 2013-12-3 21:52 編輯 : C7 T5 o6 P* t
$ K6 G2 c) p) K M
這個方法是用來更新用來做外鏈的站群的,站群定期更新。由於站群量越來越大,更新一遍很費時間,但又不願買市場上的站群軟件。所以才想出了這種方法。
6 T4 c3 E5 m4 D: ?' l2 S. f自己雖有一些編程基礎,但沒學過php,是邊查語法邊寫的,程序可能有些笨拙,高手不要見笑。- <?php
9 C5 j4 O9 ^, n2 H7 D - //數據庫參數
9 H4 W4 P! k2 l/ w3 t- z) t - $dbuser='';
! k: ] T: j" C( Q7 e+ ~9 z* u - $dbpwd='';
/ f3 B+ L; i. o, L/ V5 | - $dbname='';
" M) v( F" u* L# v2 w r2 n - $dbhost=';
# p" s' ]! ~9 ^7 C. T8 g - $dbtable='';
( B* ?+ ]1 O r8 v0 }! K" t1 ?, a8 m - ( E% g$ F, X2 Q k
- //設置讀取路徑( P& Y) d- v1 L% H5 x5 G
- $rdcontent='xxxx.txt';
8 |' D! K. l& i) T7 u) b+ L - $rdtitle='xxxxtitle.txt';9 D* w% E9 M/ T
- $rdlink='xxxxlink.txt';8 S) T5 k4 Q3 j
- : `" T0 e+ r* W" }7 J* [2 d3 X
- //讀取插入鏈接,並設置發佈概率
5 H1 \7 @, z9 ] - function gen_link($rdlink){
. B" k. }6 j: d2 Z( P' d, T - $data2 = file($rdlink);
( c2 V e% u7 C" Q - $num2 = count($data2);! k, g) J1 a: T! m+ Z. j
- $id2= mt_rand(0,$num2-1);/ x! S0 S9 C N1 |, E8 D3 z# Q# [
- $random= mt_rand(0,10);
, t" a- K% X) Z9 D( w. E/ Q - if($random<5)
0 r/ X: i+ Z* u3 {7 K - $link= trim($data2[$id2]);% s! _2 @. d0 P/ g9 g
- else1 a; x/ y, ~ k) r& A; Z/ b
- $link="";
$ ]# `2 r' u1 {+ L - return $link;
6 h2 h" _# B( T+ S: p - }
! P, U' Z! n% c K9 ~. A
# ?! P( i- j7 e; ^5 o- //生成文章
, T3 c9 |2 _# q8 [- i - $str = "";
- |, l6 ]3 }2 K8 ?9 W - $title = "";
( r; O# d( a! s% j5 H
4 q8 O* H; M9 \* P! T7 }4 `- $data2 = file($rdtitle); ~* P6 `: i- ~9 h
- $num2 = count($data2);5 A6 O4 A0 Q& l0 V
- $id2 = mt_rand(0,$num2-1); Z0 w: ^3 }( n' e& E
- $title = $data2[$id2];
8 Y5 X2 |+ R" ^. X+ u9 Q1 V - - ?" w% z3 Q* T7 A, T
- $data = file($rdcontent);
V: U A) o% i2 g" s - $num = count($data);
+ N" |* @& y0 j+ W6 C5 d0 d& ]
4 C3 ^5 a, q) V$ X n, ? t9 {2 u- for($i=0;$i<25;$i++){. K D1 U6 M: c% r% V
- $temp=" ";+ A2 l4 Q$ H4 ]" w5 [
- if(($i%5)==0)
2 n {7 V7 T, j& C' @) A! P# Q1 I - $temp="8 ]! s8 ]: F, k8 c' \* ^
- \n";4 v1 m* b0 ]) ]8 i
- elseif(($i==7)|($i==21)){& V9 ~* ?, Z6 k3 k& g
- $links=gen_link($rdlink);9 ]6 \/ G4 d# |6 ~6 M; H
- $str=$str." ".$links." ";. `( l- n: u" [! d! |
- }
, y9 `/ B; ?3 t& H6 V - $id = mt_rand(0, $num-1);
0 b- [, h. u$ a' ~ - $line = trim($data[$id]);
4 \7 V5 Q, {2 @1 h7 X - $str=$str.$temp.$line;
) S3 z6 C/ v: [6 F1 h# } - }/ `0 e( p" p0 G( T K" d
- K' n7 R; V2 ?8 A( K- //生成slug
% q) R, \& ], j7 a$ I - function generate_slug($len){
8 N9 A2 a- |# e3 }, A& Q - $chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
3 _1 ` z1 C) T - $slug="";
- q2 @3 C; A0 Y( ^; |* [ j - for($j=0;$j<$len;$j++){
1 o3 M0 s9 [& b8 g/ S - $slug .= $chars[ mt_rand(0, strlen($chars) - 1) ];
! H" X; M0 X" J& ]9 ?2 W* r/ A$ } - }( x" f+ A9 c+ i+ T
- return $slug; ?2 U- m; f# K/ d! _* T# G1 k
- }8 j8 y% P2 t9 Q; j
- $slug = generate_slug(17);; g7 z7 h3 ?- _7 H5 Y3 i: _" v
- 2 D# R; Y% m' o7 Q/ ?8 g# m
- //獲取發佈時間
. _ \' H( P/ L+ z+ y1 f - $datetime= date("Y-m-d H:i:s");6 g1 c& A( G8 b
6 P* C6 `& R' v5 A$ T- $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')";' q, y7 `* R' n) C/ v' \5 \. A \
$ V, r- w4 q, C3 ^: m+ q- //連接數據庫並處理數據. D! n y0 ]& t* m
- $con = mysql_connect($dbhost,$dbuser,$dbpwd);' w1 h1 c. s! T, V
- if(!$con){% ?' J( I& _2 a
- die('Failed to connect to database! '.mysql_error());
: v" ]8 j! w4 p* u4 h" x - }else
4 u3 d7 s. ]% x5 K4 U/ m1 K - echo "Suscess to connect to database!
. p! b$ }+ E, c. q& I - \n";
& N7 H) O$ a. o! R6 S - 3 i5 D6 E4 w& t5 N5 _: S4 P8 r
- mysql_select_db($dbname,$con);
' O x, f/ U& r1 c/ N; k* V4 f, Y! I - " I% n$ h5 M( ?! y8 r. d
- $result=mysql_query($sql); T0 t+ ~5 R" {
- ! e5 r, D1 ^, J0 ^( d
- mysql_close($con);% s5 r& F5 @: i2 ~- f
- 4 Z; A9 G; ^7 x. C/ t3 \
- if(!$result){, p1 ]' Y( Z7 ]2 Y+ i
- echo $result;; W5 ?# C( @- W0 d- U* K1 p6 q
- die('Failed to post article! '.mysql_error());9 @+ K9 B% C! L
- }else
+ ]4 q' {( Z; N: G3 F - echo "Suscess to post article!\n";
3 k! R" u- H) w% `1 D! s: r - 6 g" D2 R% z2 `. A& _& |5 q
- echo $dbname." is done";
; g) U* h0 ]2 J0 [/ ]
& }& n. N5 d& o f$ s% k5 b: [! e Y9 X- ?>
複製代碼 文章插入到wp-posts表中,文章id自動生成,在插入時是未知的,所以就在插入文章的同時無法再將id 插入到wp_term_relationship , 這樣的結果是發佈的文章是無分類的。所以不太明白關於「讀取id」的方法,請指教。
! ]8 d; t: O8 _5 T% T( k( `$ ~# N3 K- I0 b4 P- c" F! e1 {
文章的slug我用了隨機生成的方法,其實最好的方法應該是用文章標題來轉化,但那樣麻煩些懶得費事。文章作者默認為1,就是管理員。文章內容我用了Yoo版的方法:http://www.advertcn.com/thread-12629-1-1.html。能保證原創性,但損失了可讀性,由於是做外鏈用的,應該關係不大。
$ Y" Y5 R* G8 s8 X' Y$ h0 O
3 R( A. O$ u+ F: F- j& z如果想將文件夾下的文章隨機發佈的話,可以先將文件夾內文件遍歷,然後隨機抽取發佈的方法。
% O9 f- L# |* C3 H* N- d2 b1 ~- @這樣做成php頁面,某站目錄下,使用VPS的Crontab 用curl語法定時向該url發出請求,就可自動發佈一篇文章,如果想要多篇的話,可以使用循環。
; k( n; K3 ], d. E0 Q4 P8 c4 G( W% i
: _ E! V1 x! G6 D+ |
. j9 o( P6 M. r" v) o, }4 c+ k8 @% P. r( X
|