使用LMLPHP实现简单的CURL请求POST例子技术
maybe yes 发表于2015-08-22 10:30
原文链接 : http://blog.lmlphp.com/archives/141/Using_LMLPHP_to_achieve_a_simple_CURL_POST_request_example 来自 : LMLPHP后院
不知道在哪里看到过的文字,说 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) "您好"}"
细心的童鞋一定会发现,奇怪了为什么输出的内容是一行呢?哈哈哈,想知道吗?