fsockopen php post,CURL和fsockopen两种方式POST数据并写入文件

function http($host, $path, $post, $timeOut = 60) {

if (function_exists ( 'curl_init' ) && function_exists ( 'curl_exec' )) {

$ch = curl_init ( 'http://' . $host . $path );

curl_setopt ( $ch, CURLOPT_HEADER, 0 );

curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );

curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, $timeOut );

curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, 'POST' );

curl_setopt ( $ch, CURLOPT_POST, true );

curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post );

$body = curl_exec ( $ch );

curl_close ( $ch );

return $body;

} else {

$values = array ();

foreach ( $post as $key => $value ) {

$values [] = "$key=" . urlencode ( $value );

}

$data = implode ( '&', $values );

$header = "POST " . $path . " HTTP/1.0\r\n"; // 使用HTTP/1.1协议内容会有异常

$header .= "Host: " . $host . "\r\n";

$header .= "Content-type: application/x-www-form-urlencoded\r\n";

$header .= "Content-length: " . strlen ( $data ) . "\r\n";

$header .= "Connection: close\r\n";

$header .= "\r\n";

$header .= $data . "\r\n";

$body = '';

$fp = fsockopen ( $host, 80, $errno, $errstr, $timeOut );

fputs ( $fp, $header );

while ( ! feof ( $fp ) ) {

$body .= fgets ( $fp, 128 );

}

fclose ( $fp );

return substr ( $body, strpos ( $body, "\r\n\r\n" ) + 4 );//fsockopen去除头部header关键步骤

}

}

//http://my.oschina.net/cart/

$content = http ( 'www.oschina.net', '/', array ('k1' => 111, 'k2' => 2222) );

var_dump($content);

exit ();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值