LMLPHP后院

使用LMLPHP实现简单的CURL请求POST例子技术

maybe yes 发表于 2015-08-22 10:30

知道在哪里看到过的文字,说 PHP CURL 很强大,但是搞了这么久,不知道强大在哪。不过仔细一看,确实挺强大的,可以实现所有HTTP 请求,难道还不强大吗?

说实话,如果进行简单的 GET 请求,我个人认为根本不需要 CURL,PHP 的 file_get_contents 足够方便和强大了。但是如果POST 并且需要上传文件HTTPS复杂的请求,使用 file_get_contents 好像比较麻烦吧。只能用 curl 的方式了。

下面的例子,使用 LMLPHP 做一个简单的 CURL POST 请求,发送头部 Cookie 并 提交数据,希望给大家带来帮助。代码LMLPHP 控制器中的节选片段,如下:


    public function curltestpost()
    {

        $headers = array("Cookie:lmlphp=yes");
        $post_data = array("您好");

        $ch = curl_init("http://home.may/index/curlreceivepost");
        //$ch = curl_init();
        //curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 60);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_USERAGENT, 'may flowers');

        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

        $data = curl_exec($ch);

        if (curl_errno($ch)) {
            print "Error: " . curl_error($ch);
        } else {
            var_dump($data);
            curl_close($ch);
        }
    }

    public function curlreceivepost(){
        var_dump($_COOKIE);
        var_dump($_POST);
    }

CLI 模式运行,结果如下:


$ php index.php /index/curltestpost
string(80) "array(1) {  ["lmlphp"]=>  string(3) "yes"}array(1) {  [0]=>  string(6) "您好"}"

细心的童鞋一定会发现,奇怪了为什么输出的内容是一行呢?哈哈哈,想知道吗?

2024-04-27 00:29:29 1714148969 0.010003