php通过curl模拟功能总结

本文详细介绍了如何使用PHP和CURL库进行HTTP POST请求,包括基本语法、命令行方式、上传文件及设置header头信息。通过示例代码深入理解请求过程。

通过curl模拟post提交

php方式:

<?php
$url = "http://localhost/post_output.php";
$post_data = array (
    "foo" => "bar",
    "query" => "Nettuts",
    "action" => "Submit"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 我们在POST数据哦!
curl_setopt($ch, CURLOPT_POST, 1);
// 把post的变量加上
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
var_dump($output);
?>

post_output.php

<?php
print_r($_POST);
?>

命令行方式:

curl -d "foo=bar" "http://localhost/post_output.php"

111920_SwkU_780509.png

通过curl模拟上传文件

php方式:

<?php
$url = "http://localhost/upload_output.php";
$post_data = array (
    "foo" => "bar",
    // 要上传的本地文件地址
    "file" => "@d:/wamp/www/test.zip"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
echo $output;

upload_output.php

<?php
if ($_FILES["file"]["error"] === 0){
    $name = "upload/".time().$_FILES["file"]["name"];
    if (file_exists($name))
    {
        echo $name . " already exists. ";
        exit;
        }else{
        move_uploaded_file($_FILES["file"]["tmp_name"],$name);
        echo "Stored in: " . $name;  
    }
}

curl命令行方式:

curl -F "file=@d:/wamp/www/test.zip" http://localhost/upload_output.php

112819_mE59_780509.png

通过curl设置header头信息

在一个HTTP请求中覆盖掉默认的HTTP头或者添加一个新的自定义头部字段

例如:

增加一个username参数

curl -H username:test123 -v http://www.myyii.dev/test/posts.html

php接收header头信息

<?php
print_r($_SERVER);
echo $_SERVER['HTTP_USERNAME'];
?>

待完成。。。


转载于:https://my.oschina.net/chinahub/blog/542743

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值