php5中模拟发出POST请求

1、用file_get_contents或者fopen、file、readfile等函数读取url的时候,会创建一个名为$http_response_header的变量来保存http响应的报头,使用fopen等函数打开的数据流信息可以用stream_get_meta_data来获取。
2、php5中新增的参数context使这些函数更加灵活,通过它我们可以定制http请求,甚至post数据。

示例代码1:

    1. <?php
    2. $html = file_get_contents(’http://www.example.com/’);
    3. print_r($http_response_header);
    4. // or
    5. $fp = fopen(’http://www.example.com/’, ‘r’);
    6. print_r(stream_get_meta_data($fp));
    7. fclose($fp);
    8. ?>

示例代码2:

    1. <?php
    2. $data = array (’foo’ => ‘bar’);
    3. $data = http_build_query($data);
    4. $opts = array (
    5. ‘http’ => array (
    6. ‘method’ => ‘POST’,
    7. ‘header’=> “Content-type: application/x-www-form-urlencoded
      ” .
    8. “Content-Length: ” . strlen($data) . “
      “,
    9. ‘content’ => $data
    10. ),
    11. );
    12. $context = stream_context_create($opts);
    13. $html = file_get_contents(’http://www.example.com’, false, $context);
    14. echo $html;
    15. ?>

发表评论

返回顶部