php post提交给谁,PHP POST提交的四种方法

class Request{

public function curlPost($url = '', $postData = '', $options = array())

{

if (is_array($postData)) {

$postData = http_build_query($postData);

}

$ch = curl_init();

$this_header = array("content-type: application/x-www-form-urlencoded; charset=UTF-8");

curl_setopt($ch,CURLOPT_HTTPHEADER,$this_header);

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

curl_setopt($ch, CURLOPT_TIMEOUT, 5); //设置cURL允许执行的最长秒数

if (!empty($options)) {

curl_setopt_array($ch, $options);

}

//https请求 不验证证书和host

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

public static function post2($url, $data){//file_get_content

$postdata = http_build_query(

$data

);

$opts = array('http' =>

array(

'method' => 'POST',

'header' => 'Content-type: application/x-www-form-urlencoded',

'content' => $postdata

)

);

$context = stream_context_create($opts);

$result = file_get_contents($url, false, $context);

return $result;

}

public static function post3($host,$path,$query,$others=''){//fsocket

$post="POST $path HTTP/1.1\r\nHost: $host\r\n";

$post.="Content-type: application/x-www-form-";

$post.="urlencoded\r\n${others}";

$post.="User-Agent: Mozilla 4.0\r\nContent-length: ";

$post.=strlen($query)."\r\nConnection: close\r\n\r\n$query";

$h=fsockopen($host,80);

fwrite($h,$post);

for($a=0,$r='';!$a;){

$b=fread($h,8192);

$r.=$b;

$a=(($b=='')?1:0);

}

fclose($h);

return $r;

}

// 发送post请求

// @param string $url 请求地址

// @param array $post_data post键值对数据

// @return string

public function post4($url, $post_data){

// http_build_query()

// 生成URL-encode之后的请求字符串

//

// 备注:

// php5.3的分隔符用的是&,如果目标服务器也是php5.3,那么就不会出错。

// 但是如果目标服务器是java的tomcat或者别的,那么&可能就会处理错误。

// 以下的形式能够避免错误

// http_build_query($post_data, '', '&');

// stream_context_create()

// 创建并返回一个流的资源

//$username='username';

//$password='password';

$postData = http_build_query($post_data, '', '&');

$options = array(

'http' =>array(

'method'=>"POST",

'header'=>"Accept-language: en\r\n".

"Content-type: application/x-www-form-urlencoded;Charset=utf-8\r\n",

'content' => $postData,

'timeout' => 15 * 60,//超时时间(单位:s)

)

);

//创建并返回一个流的资源

$context = stream_context_create($options);

$result = file_get_contents($url, false, $context);

return $result;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值