资讯专栏INFORMATION COLUMN

curl执行生成二维码,返回一堆乱码的处理

张红新 / 2265人阅读

摘要:前言最近在开发个微信小程序用到生成二维码的接口,执行生成二维码后,返回了一堆乱码,很是无奈,查遍资料最终得以解决。后端后端执行生成二维码的时候可不是像接口那样加个就能正常返回二维码的图片了,需要用保存到文件夹,返回路径放到才能正常展示。

前言

最近在开发个微信小程序用到生成二维码的接口,curl执行生成二维码后,返回了一堆乱码,很是无奈,查遍资料最终得以解决。由于网上的资料过于散乱,不易查看,容易误导人等等原因,使我萌生了写下这篇文章的动机。
文章主要分两部分讲解,接口和后端。

接口

curl执行的时候加上这么个header:$header=header("Content-Type:image/jpg;charset=utf-8");(注:这里是单个header值的写法。如果是多个header值的话就要改成$header=array("Authorization:Basic","Content-Type:application/json");这种写法。注意单个header值不能用多个header值的写法。)

加好之后接口就可以正常返回二维码图片了。

后端

后端执行curl生成二维码的时候可不是像接口那样加个header就能正常返回二维码的图片了,需要用file_put_contents保存到文件夹,返回路径放到img才能正常展示。

示例代码:

              json_encode(array(
                                            "action_name"=>"QR_LIMIT_SCENE",
                                            "action_info"=>array(
                                                    "scene"=>array(
                                                        "scene_id"=>$scene_id
                                                    )
                                            )
                                    )));
        
                                    $response = json_decode(ihttp_request($url,$_data)["content"],true);

                                    $ticket=!empty($response["ticket"])?$response["ticket"]:"";
                                     $_url=$_W["siteroot"]."app/index.php?i=".$_W["uniacid"]."&t=0&v=1.1.1&from=wxapp&c=entry&a=wxapp&do=Showqrcode&m=hotmallstore&ticket=".$ticket;

                                     $code = ihttp_get($_url);

                                    $file_path = ATTACHMENT_ROOT."images/qrcode/";
                                  
                                    if(!is_dir($file_path)) {
                                       $result = mkdir($file_path, 0777, true);
                                        if($result) {
                                            $path_arr = explode("/",$path);
                                            $path_str = "";
                                            foreach($path_arr as $val){
                                                $path_str .= $val."/";
                                                $a = chmod($path_str,0777);
                                            }
                                        }
                                        $file_path=$result;
                                    }
                                    $name=$scene_id.".png";
                                    $img_path="images/qrcode/".$name;
                                    $filename = $file_path.$name;
                                    if(!file_exists($filename)){
                                        file_put_contents($filename, !empty($code["content"])?$code["content"]:"");
                                    }

               ?>

           
相关资料

微信小程序二维码获取和保存 PHP
使用PHP进行微信开发时,生成二维码是乱码

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29472.html

相关文章

  • curl执行生成维码返回一堆乱码处理

    摘要:前言最近在开发个微信小程序用到生成二维码的接口,执行生成二维码后,返回了一堆乱码,很是无奈,查遍资料最终得以解决。后端后端执行生成二维码的时候可不是像接口那样加个就能正常返回二维码的图片了,需要用保存到文件夹,返回路径放到才能正常展示。 前言 最近在开发个微信小程序用到生成二维码的接口,curl执行生成二维码后,返回了一堆乱码,很是无奈,查遍资料最终得以解决。由于网上的资料过于散乱,不...

    Taste 评论0 收藏0
  • SpringCloud(第 023 篇)简单文件上传微服务采取curl或者页面点击实现文件上传

    摘要:二实现步骤添加引用包模块客户端发现模块监控和管理生产环境的模块添加应用配置文件,默认,默认打印日志添加简单的上传文件页面添加上传文件控制器上传文件控制器。添加文件服务启动类简单文件上传微服务采取或者页面点击实现文件上传。 SpringCloud(第 023 篇)简单文件上传微服务采取curl或者页面点击实现文件上传 - 一、大致介绍 1、本章节主要搭建了一个简单的页面上传Web控制器,...

    wangbinke 评论0 收藏0
  • php curl 优化下载微信头像

    摘要:做过微信网页开发的同学肯定遇到过这样的需求,基于一张背景图生成用户推广海报,上面需要有推广二维码用户头像用户名称等等。 做过微信网页开发的同学肯定遇到过这样的需求,基于一张背景图生成用户推广海报,上面需要有推广二维码、用户头像、用户名称等等。本来应该是一个很普通的需求,使用php的gd库就很容易合成,但是最近在生成这样海报的时候,发现时间长达19s,最后发现问题卡在远程拉去微信头像上,...

    ZweiZhao 评论0 收藏0
  • mac下编译安装php redis扩展

    摘要:下编译安装扩展下载源文件这里就会有个问题,到哪里下载呢答案是的官方扩展库打开网站是可以在上面直接通过浏览器下载的,但是我们为了装逼,我们要用命令行下载但是当我们执行上面的命令会出现如下提示装逼失败。。。 mac下编译安装php扩展 redis 1. 下载源文件: 这里就会有个问题,到哪里下载呢 - - 答案是 php的官方扩展库--pecl 打开 pecl网站 是可以在上面直接通过浏...

    tulayang 评论0 收藏0
  • mac下编译安装php redis扩展

    摘要:下编译安装扩展下载源文件这里就会有个问题,到哪里下载呢答案是的官方扩展库打开网站是可以在上面直接通过浏览器下载的,但是我们为了装逼,我们要用命令行下载但是当我们执行上面的命令会出现如下提示装逼失败。。。 mac下编译安装php扩展 redis 1. 下载源文件: 这里就会有个问题,到哪里下载呢 - - 答案是 php的官方扩展库--pecl 打开 pecl网站 是可以在上面直接通过浏...

    Steven 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<