PHP CURL发送POST请求
博客专区 > kongjun 的博客 > 博客详情
PHP CURL发送POST请求
kongjun 发表于3年前
PHP CURL发送POST请求
  • 发表于 3年前
  • 阅读 23
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】买域名送云解析+SSL证书+建站!>>>   

<?php  
  $ch = curl_init();  
  $timeout = 5;  
  curl_setopt ($ch, CURLOPT_URL, 'http://www.domain.com/');  
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);  
  curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
  curl_setopt($ch, CURLOPT_POST, 1 );//设置post请求
  curl_setopt($ch, CURLOPT_HEADER, 0 ) ;
  curl_setopt($ch,CURLOPT_POSTFIELDS, "param=".$param);//param为请求的参数
  $file_contents = curl_exec($ch);  
  curl_close($ch);  
  echo $file_contents;
?>

/**
* 
* @Description 批量请求获得内容
* @param @param array $urls
* @param @param String $param
* @return String
*/
public function remoteByRolling($urls, $param) {
		
        if (! is_array ( $urls ) || count ( $urls ) == 0)
		return false;
	$queue = curl_multi_init ();
	$map = array ();
	foreach ( $urls as $url ) {
		$this->remoteByPost ( $url, $param );
		curl_multi_add_handle ( $queue, $this->ch );
		$map [$url] = $this->$ch;
	}
		
	$active = null;
	// 执行批处理句柄
	do {
		$mrc = curl_multi_exec ( $queue, $active );
	} while ( $mrc == CURLM_CALL_MULTI_PERFORM );
		
	while ( $active > 0 && $mrc == CURLM_OK ) {
		//curl_multi_select:等待所有cURL批处理中的活动连接
		if (curl_multi_select ( $queue, 0.5 ) != - 1) {
			do {
				$mrc = curl_multi_exec ( $queue, $active );
			} while ( $mrc == CURLM_CALL_MULTI_PERFORM );
		}
	}
		
	/* get data */
	$responses = array ();
	foreach ( $map as $url => $ch ) {
			
		if (curl_error ( $ch ) == '') {
			$responses [$url] = curl_multi_getcontent ( $ch ) ;
		}else{
			error_log("curl error");
		}
		curl_multi_remove_handle ( $queue, $ch );
		curl_close ( $ch );
	}
}

更多参数设置:http://www.php.net/manual/zh/function.curl-setopt.php
还可以支持并发。。http://www.searchtb.com/2012/06/rolling-curl-best-practices.html
哈哈,php真简单,比java简单多很多了。。。

标签: curl 批处理 php
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 7
博文 96
码字总数 40140
×
kongjun
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: