pcntl多线程采集入库示例
php备忘
<?php
header("Content-type: text/html; charset=utf-8");
$mainurl = "http://www.wdzj.com/dangan/";
$maincontent = file_get_contents($mainurl);
preg_match_all("/条数据<strong>1<\/strong>\/<strong>(.*)<\/strong>/iUs",trim($maincontent),$dd);
$maincount = $dd[1][0];
$time = time();
for($i=1;$i<=$maincount;$i++){
$pid[$i] = pcntl_fork();
switch($pid[$i]){
case "-1":
echo "fork error:{$i}\r\n";
break;
case "0":
$mainpost_url = "http://www.wdzj.com/front_select-plat";
$maindata["currPage"] = $i;
$maindata["params"] = "";
$maindata["sort"] ="0";
$maincoo = CurlPost($mainpost_url,$maindata);
$mianlist = json_decode($maincoo,true);
foreach($mianlist['list'] as $keyy=>$valuee){
$url = 'http://www.wdzj.com/dangan/'.$valuee['platPin'];
if($valuee['platStatus']==1){
mysql_connect("localhost","root","");
mysql_select_db("caiji");
$sql = "insert into `lzh_wdzj_dangan` set `name`='{$valuee['platName']}',`platId`='{$valuee['platId']}',`url`='{$url}',`platPin`='{$valuee['platPin']}',`update_time`='{$time}'";
var_dump(mysql_query($sql));
echo "采集{$url}成功!";
}
}
sleep(3);
exit();
break;
default:
pcntl_waitpid($pid[$i],$status,WNOHANG);
break;
}
}
function CurlPost($url,$data){
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
$return = curl_exec ( $ch );
curl_close ( $ch );
return $return;
}