$url_arr = array();
for ($i=0;$i<50;$i++){
$url_arr[] = "www.baidu.com?wd=".$i;
}
$url_arr = splitArray($url_arr,5);
echo "start:".date("Y-m-d H:i:s").PHP_EOL;
$workers = array();
for ($i=0;$i<5;$i++){
$process = new swoole_process('getContents',true);
$process->start();
$process->write($i);
$workers[] = $process;
}
//主进程数据结果
foreach ($workers as $process){
echo $process->read();
echo PHP_EOL;
}
echo "end:".date("Y-m-d H:i:s").PHP_EOL;
function getContents(swoole_process $worker){
$i = $worker->read();
execCurl($i);
echo PHP_EOL;
}
function execCurl($i){
sleep(2);
global $url_arr;
for ($x=0;$x<count($url_arr[$i]);$x++){
$a = $url_arr[$i][$x];
echo $a.'---------';
file_put_contents('uuu.txt',$a.'-----',FILE_APPEND);
}
}
/**
*
* 把数组按指定的个数分隔
* @param array $array 要分割的数组
* @param int $groupNum 分的组数
*/
function splitArray($array, $groupNum){
if(empty($array)) return array();
//数组的总长度
$allLength = count($array);
//个数
$groupNum = intval($groupNum);
//取余
$yu = (int)($allLength%$groupNum);
//取整
$zheng = (int)(($allLength-$yu)/$groupNum);
//结果集
$result = array();
//算出小数组可以有几个元素
$s = array();
if($yu > 0){
for ($i=0; $i <$groupNum; $i++) {
$s[$i] = $zheng;
if($yu>=1){
$s[$i] = $s[$i]+1;
}
$yu = $yu-1;
}
}else{
return array_chunk($array, $zheng);
}
foreach ($s as $k => $v) {
for ($i=0; $i < $v; $i++) {
$result[$k][] = array_shift($array);
}
}
return $result;
}