zoukankan      html  css  js  c++  java
  • 使用php模拟post的几种方法

    <?php
    function file_get_contents_post($url,$post){
    $options=array(
    'http'=>array(
    'method'=>'POST',
    //'content'=>'name=caiknife&email=caiknife@gmail.com',
    'content'=>http_build_query($post),
    ),
    );

    $result=file_get_contents($url,false,stream_context_create($options));

    return$result;
    }

    $data=file_get_contents_post("http://www.a.com/post/post.php",array('name'=>'caiknife','email'=>'caiknife@gmail.com'));




    function curl_post($url,$post){
    $options=array(
    CURLOPT_RETURNTRANSFER=>true,
    CURLOPT_HEADER=>false,
    CURLOPT_POST=>true,
    CURLOPT_POSTFIELDS=>$post,
    );

    $ch=curl_init($url);
    curl_setopt_array($ch,$options);
    $result=curl_exec($ch);
    curl_close($ch);
    return$result;
    }

    $data=curl_post("http://www.a.com/post/post.php",array('name'=>'caiknife','email'=>'caiknife@gmail.com'));





    function socket_post($url,$post){
    $urls=parse_url($url);
    if(!isset($urls['port'])){
    $urls['port']=80;
    }

    $fp=fsockopen($urls['host'],$urls['port'],$errno,$errstr);
    if(!$fp){
    echo"$errno,$errstr";
    exit();
    }

    $post=http_build_query($post);
    $length=strlen($post);
    $header=<<<HEADER
    POST{$urls['path']} HTTP/1.1
    Host:{$urls['host']}
    Content-Type:application/x-www-form-urlencoded
    Content-Length:{$length}
    Connection:close

    {$post}
    HEADER;

    fwrite($fp,$header);
    $result='';
    while(!feof($fp)){
    //receivetheresultsoftherequest
    $result.=fread($fp,512);
    }
    $result=explode(" ",$result,2);
    return$result[1];
    }

    $data=socket_post("http://www.a.com/post/post.php",array('name'=>'caiknife','email'=>'caiknife@gmail.com'));



    ?>

    【源码最能说明问题,源码是csdn的一篇博文里的:http://blog.csdn.net/caiknife/article/details/8796505】

  • 相关阅读:
    POJ 2506 Tiling
    POJ 2586 Y2K Accounting Bug
    POJ 2965 The Pilots Brothers' refrigerator (DFS)
    POJ 2499 Binary Tree
    POJ 3006 Dirichlet's Theorem on Arithmetic Progressions (素数)
    beautifulsoup 基本语法 含class属性查找小技巧class_
    xlrd库的使用
    pytest框架 里 fixture 参数化的方法
    ddt数据驱动
    mac电脑 pip安装包后 撞到了系统python里面的解决方法
  • 原文地址:https://www.cnblogs.com/vanwoos/p/4604918.html
Copyright © 2011-2022 走看看