分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

2017年10月18日-php curl get post请求

发布时间:2023-09-06 01:18责任编辑:熊小新关键词:url

   一、CURL小结

         个人将归纳curl请求总结成三步

         1、创建curl 句柄(curl_init),并设置参数(curl_setopt)(打开冰箱)

         2、执行请求(curl_exec),处理返回的数据 (把大象塞进去)

         3、关闭curl(curl_close),释放所有资源(关上冰箱)

         其实如果代码看起来比较复杂,复杂的地方可能就是在处理返回数据的逻辑。

二、CURL_SETOPT

        故名思议,SetOption 设置参数,其中囊括的参数较多,这里只是简单提取常用的几个,如需查看更多参数,点击这里,常见的设置UA、Cookie、https等

bool curl_setopt ?????????( resource $ch , int $option , mixed $value )CURLOPT_USERAGENT ????????在HTTP请求中包含一个"User-Agent: "头的字符串。CURLOPT_REFERER ??????????在HTTP请求头中"Referer: "的内容。CURLOPT_TIMEOUT ??????????允许 cURL 函数执行的最长秒数。CURLOPT_RETURNTRANSFER ???TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出。
/*下面两个再https请求中才需设置*/CURLOPT_SSL_VERIFYPEER ???FALSE 禁止 cURL 验证对等证书(peer‘s certificate)。要验证的交换证书可以在 CURLOPT_CAINFO 选项中设置,或在 CURLOPT_CAPATH中设置证书目录。(自cURL 7.10开始默认为 TRUE。从 cURL 7.10开始默认绑定安装。)CURLOPT_SSL_VERIFYHOST ???设置为 1 是检查服务器SSL证书中是否存在一个公用名(common name)。译者注:公用名(Common Name)一般来讲就是填写你将要申请SSL证书的域名 (domain)或子域名(sub domain)。 设置成 2,会检查公用名是否存在,并且是否与提供的主机名匹配。 0 为不检查名称。 在生产环境中,这个值应该是 2(默认值)。 ???值 1 的支持在 cURL 7.28.1 中被删除了。 

       下面以请求百度为例,需要使用自行设置URL、Ua、Cookie等,https请求中才需要只用的SSL证书校验,http请求中可不用,如果需要请求有规律的地址,类似example.com/?id=$i,修改for循环即可。

<?phpclass getRequest{ ???const sUA = ‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)‘; ???const sURL = ‘https://www.baidu.com‘; ???const sCookie = ‘fake if you want‘; ???function vInitRequest() ???{ ???????$curl = curl_init(); ???????curl_setopt($curl, CURLOPT_HEADER, self::sUA); ???????curl_setopt($curl, CURLOPT_COOKIE, self::sCookie); ???????curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); ???????/* ????????* ssl check,use for https url ????????*/ ???????curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); ???????curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);// ???????for ($iId = 1; $iId < 1000; $iId++) {// ???????????$sURL = self::sURL.$iId; ???????curl_setopt($curl, CURLOPT_URL, self::sURL); ???????$this->sExecRequest($curl);// ???????} ???} ???function sExecRequest($curl) ???{ ???????$sRet = curl_exec($curl); ???????print_r($sRet); ???????/** ????????* handle your response ????????* stripos or preg ????????*/ ???????curl_close($curl); ???}}$foo = new getRequest();$foo->vInitRequest();?>

未完

2017年10月18日-php curl get post请求

原文地址:http://www.cnblogs.com/i0ject/p/7684923.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved