PHP通用型CURL


    function http_curl_v1($url, $postBody, $method = "POST")
    {
//        $all_url_arr = explode("?", $all_url);//请求的全部地址,此方法可以完全替代:file_get_contents
//        $url = $all_url_arr[0];//请求地址
//        $postBody = $this->url_to_arr($all_url_arr[1]);//转换成数组,方便提交
        $headers = array(
            'Content-Type' => 'application/x-www-form-urlencoded;text/json;charset=utf-8'
//            'Content-Type' => 'application/x-www-form-urlencoded'
//            'Content-Type' => 'multipart/form-data'
//            'Content-Type' => 'application/json'
        );

        // 初始化curl
        $ch = curl_init();
        // 设置curl参数
        curl_setopt($ch, CURLOPT_URL, $url);
        //设置头文件的信息作为数据流输出,GET好像要是1
        curl_setopt($ch, CURLOPT_HEADER, 0);//改成1可以打印出结果,这样可以判断是否成功201就是成功
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

        if ($method == 'POST') {
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);//15秒超时
            curl_setopt($ch, CURLOPT_TIMEOUT, 30);//15秒超时
//            curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postBody));
            curl_setopt($ch, CURLOPT_POSTFIELDS, $postBody);
        } else if ($method == 'DELETE') {
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
        } else if ($method == 'PUT') {
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
            curl_setopt($ch, CURLOPT_POSTFIELDS, $postBody);
        }
        //采集
        $output = curl_exec($ch);
//      var_dump($output);
        // curl请求返回状态码
//      $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);//这个信息太少,弃用
        $curl_info = curl_getinfo($ch); //获取全部的,官方文档:https://www.php.net/manual/zh/function.curl-getinfo.php
        $error = curl_error($ch);
        // 关闭
        curl_close($ch);
        if ($error) {
            // 请求发生错误,返回错误信息
            $return_array = array(
                'code' => $curl_info['http_code'],
                'msg' => '网络异常',
                'data' => $error,
                'curl_info' => $curl_info);
            return json_encode($return_array, JSON_UNESCAPED_UNICODE);//返回json
        } else {
            $output_array = json_decode($output, true);//解成数组
            if (is_array($output_array)) {
                unset($output_array['curl_info']);//去掉之前的
                //增加CURL信息,方便排查错误 //demo 2022/1/19 13:40
                $output_array['curl_info'] = $curl_info;
                return json_encode($output_array, JSON_UNESCAPED_UNICODE);//返回json
            } else {
                return $output;//不是标准数组,直接返回错误。返回字符串
            }
        }
    }

### 如何在EDA专业版中绘制螺丝孔 #### 建新的PCB项目并进入编辑模式 启动EDA专业版建一个新的PCB设计项目或打开现有的项目。确保已经导入了所需的原理图和元件库。 #### 添加机械层用于标记螺丝孔位置 为了精确地定义螺丝孔的位置,在顶层(Top Layer)或其他适当的工作层面添加一层作为机械层(Mechanical Layer)[^1]。这一步骤有助于区分电气连接区域与物理安装特征。 #### 使用圆形工具绘制螺丝孔图形 切换至绘图工具栏中的圆(Circle Tool),设置好直径参数以匹配实际使用的螺丝尺寸规格。通常情况下,对于M2-M3大小的标准内六角沉头螺钉来说,推荐的钻孔直径大约为Φ2.0mm~Φ3.5mm之间[^3]。 ```plaintext Circle Diameter: Φ2.0mm ~ Φ3.5mm (for M2 to M3 screws) ``` #### 设置属性使该对象成为非铜箔区(No Copper Zone) 完成圆形轮廓描绘之后,选中所画的对象并通过右键菜单选项将其转换成NPTH(Non-plated Through Hole),即不镀通孔类型;这样可以防止在此处形成任何金属化结构,并告知制造商此处应加工出实体贯穿整个板厚而不需电镀处理的孔洞。 #### 定义过孔(Via)样式来模拟螺丝柱功能 如果希望进一步增强模型的真实感,则可以在相同坐标点上叠加一个具有较大焊盘(Pad)而无导线宽度设定的小型埋入式盲孔(Buried Via)或者微带状过孔(Microvia)。通过这种方式不仅能够直观展示最终产品外观效果,同时也便于后期装配过程中定位参考[^2]。 #### 导出含螺丝孔信息在内的3D外壳文件以便后续操作 最后当所有必要的螺丝孔都已正确布置完毕后,记得保存当前工作进度并将包含这些新增特性在内的整体三维视图导出为兼容主流CAD/CAM平台读取标准的数据格式如STEP等,从而允许其他应用程序继续完善细节部分的设计流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值