首页 > 编程语言 >记录一个比较完善的php的curl请求方法的demo

记录一个比较完善的php的curl请求方法的demo

时间:2023-09-11 22:33:40浏览次数:39  
标签:ch setopt url demo headers curl php CURLOPT

function httpRequest($url, $dataStr = "", $isPost = 0,$headers=[])
{
    $httpInfo = [];
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22");
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    // 请求头
    if (!empty($headers)) {
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    }

    // 跳过证书检查
    if (strtolower(mb_substr($url,0,8,"utf-8")) == "https://") {
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在
    }

    if ($isPost) {
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $dataStr);
        curl_setopt($ch, CURLOPT_URL, $url);
    } else {
        curl_setopt($ch, CURLOPT_URL, $url . "?" . $dataStr);
    }
    //echo $url."?".$dataStr;
    $response = curl_exec($ch);
    if ($response === false) {
        //echo "cURL Error: " . curl_error($ch);
        return false;
    }
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $httpInfo = array_merge($httpInfo, curl_getinfo($ch));
    curl_close($ch);
    return $response;
}



$url = "http://v.juhe.cn/calendar/day";
$params = [
    "key" => "您申请的AppKey",
    "date" => "2015-1-1",
    
];

$paramsStr = http_build_query($params);//get请求需要转换,post可以直接用数组
$headers = ["Content-Type" => "application/x-www-form-urlencoded"];

$content = httpRequest($url, $paramsStr,0,$headers);
$result = json_decode($content, true);
if ($result) {
    var_dump($result);
    // 具体返回示例值,参考返回参数说明、json返回示例
} else {
    // 请求异常
}

标签:ch,setopt,url,demo,headers,curl,php,CURLOPT
From: https://blog.51cto.com/u_15668841/7439232

相关文章

  • 在thinkphp6中使用leftJoin时,怎么使用REPLACE?
    在ThinkPHP6中,你可以使用db()函数来构建复杂的SQL查询,以实现JOIN并使用REPLACE函数。可以按照以下方式修改你的代码:$res->leftJoin('work','work.workID=REPLACE(entry_in.workID,"JP","")')->where('work.customer_id',$customer_id);在这......
  • 导入demo
           ......
  • 云上的甜蜜早安:腾讯云云函数助力PHP打造女友专属每日推送
    用腾讯云的云函数做一个微信公众号早安,每天定时发送早安给你的女朋友!1.首先我们登录腾讯云,在搜索栏搜索云函数,或直接用这个链接进入curl.qcloud.com/Td0IkpmD2.进入云函数,点击立即体验3.这里我们选择 按照步骤选择 php4.再就是配置页面,这里我们只需要配置两个地方,也就是......
  • 基于PHP vue2+element+ laravel8+ mysql开发的不良事件管理系统源码
    技术架构:PHP vue2+element+laravel8+mysql5.7+vscode不良事件上报系统通过“事前的人员知识培训管理和制度落地促进”、“事中的事件上报和跟进处理”、以及“事后的原因分析和工作持续优化”,结合预存上百套已正在使用的模板,帮助医院从对护理事件、药品事件、医疗器械事件、......
  • 【心得】TP6,使用phpspreadsheet库进行EXCEL的数据导入导出
    在日常开发中,我们会遇到大批量的数据导出以及导入,之前的PHP旧库现在已经停更了,如下提示:composerrequirephpoffice/phpexcelPackagephpoffice/phpexcelisabandoned,youshouldavoidusingit.Usephpoffice/phpspreadsheetinstead.phpoffice/phpexcel包已废弃,应避免......
  • linux服务器上的nginx服务、mysql服务和docker里面的php服务配合使用
    之前有个老项目是nginx1.22.0+mysql5.7+php5.6的环境在跑,也就是常说的lnmp环境。但是最近出了一个新的需求,这台服务器上要跑一个php7.3的项目,mysql5.7还可以用,nginx1.22.0也可以用,主要是php的环境要升级到7.3,那么方案应该怎么实施呢,大概有下面几个思路:1、再独立安装一个php7.3的......
  • 【黄啊码】nginx如何设置php运行的
    禁止访问PHP脚本可以通过Nginx服务器配置中的多种方式来实现。以下是其中的一些常见方法,您可以根据实际需求选择合适的方式:1 禁用PHP解析:在Nginx配置中,确保PHP脚本无法被解析,从而禁止PHP执行。location ~ \.php$ {   deny all;}2 限制访问路径:限制只允许......
  • 【黄啊码】PHP如何防止重复提交
    防抖(Debounce)是一种防止重复提交的策略,它通过延迟一定时间来合并连续的操作,以确保只执行一次。以下是几种防抖的实现方法以及对应的代码示例:1.前端JavaScript实现:在前端使用JavaScript实现防抖,可以利用 setTimeout 函数来延迟执行提交操作。function debounce(func, dela......
  • phpcms v9标签合集
    phpcmsv9模板制作常用代码集合1.截取调用标题长度{str_cut($r[title],36,'')}2.格式化时间调用格式化时间2011-05-0611:22:33{date('Y-m-dH:i:s',$r[inputtime])}3.多栏目调用&多推荐位调用调用需求:文章范围为596061三个栏目,并且推送到了27和28两个推荐位;从第三条开始......
  • 基于webman的CMS,企业官网通用PHP后台管理系统
    2023年9月11日10:47:00仓库地址:https://gitee.com/open-php/zx-webman-website还有laravel+scui的版本目前还未开源,电商laravel版本差不多,后续在移植webman算是比较标准的php+vue的项目CMS,企业官网通用PHP后台管理系统Englishdoc框架介绍WebmanSCUI后端开发组件php8.......