利用Curl、socket POST数据

<?php /** * Socket版本 * 使用方法: * $post_string = "app=socket&version=beta"; * request_by_socket('facebook.cn','/restServer.php',$post_string); */ function   request_by_socket ( $remote_server , $remote_path , $post_string , $port = 80 , $timeout = 30 ){     $socket = fsockopen ( $remote_server , $port , $errno , $errstr , $timeout ) ;     if   ( ! $socket ) die ( " $errstr ( $errno ) " ) ;         fwrite ( $socket , " POST $remote_path HTTP/1.0 \r\n " ) ;     fwrite ( $socket , " User-Agent: Socket Example \r\n " ) ;     fwrite ( $socket , " HOST: $remote_server \r\n " ) ;     fwrite ( $socket , " Content-type: application/x-www-form-urlencoded \r\n " ) ;     fwrite ( $socket , " Content-length: " . strlen ( $post_string ) . " \r\n " ) ;     fwrite ( $socket , " Accept:*/* \r\n " ) ;     fwrite ( $socket , " \r\n " ) ;     fwrite ( $socket , " $post_string \r\n " ) ;     fwrite ( $socket , " \r\n " ) ;         $header = "" ;     while   ( $str = trim ( fgets ( $socket , 4096 ))) {         $header .= $str ;     }         $data = "" ;     while   ( ! feof ( $socket )) {         $data .= fgets ( $socket , 4096 ) ;     }         return   $data ; } /** * Curl版本 * 使用方法: * $post_string = "app=request&version=beta"; * request_by_curl(' http://facebook.cn/restServer.php ',$post_string); */ function   request_by_curl ( $remote_server , $post_string ){     $ch = curl_init () ;     curl_setopt ( $ch , CURLOPT_URL , $remote_server ) ;     curl_setopt ( $ch , CURLOPT_POSTFIELDS , $post_string ) ;     curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , true ) ;     curl_setopt ( $ch , CURLOPT_USERAGENT , " Jimmy's CURL Example beta " ) ;     $data = curl_exec ( $ch ) ;     curl_close ( $ch ) ;     return   $data ; } /** * 其它版本 * 使用方法: * $post_string = "app=request&version=beta"; * request_by_other(' http://facebook.cn/restServer.php ',$post_string); */ function   request_by_other ( $remote_server , $post_string ){     $context = array (         ' http ' => array (             ' method ' => ' POST ' ,             ' header ' => ' Content-type: application/x-www-form-urlencoded ' . " \r\n " .                       ' User-Agent : Jimmy \' s POST Example beta ' . " \r\n " .                       ' Content-length: ' . strlen ( $post_string ) ,             ' content ' => $post_string )         ) ;     $stream_context = stream_context_create ( $context ) ;     $data = file_get_contents ( $remote_server , FALSE , $stream_context ) ;     return   $data ; }

转载于:https://www.cnblogs.com/alon/archive/2009/10/13/1582323.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值