You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP生成二维码?使用phpqrcode库遇生成故障求助

解决phpqrcode生成二维码输出乱码的问题

嘿,我之前也碰到过完全一样的状况!你看到的那些乱码其实是PNG图片的原始二进制数据,浏览器没把它当成图片解析,问题主要出在两个核心点:缺少正确的HTTP响应头,或者GD扩展没真正启用。下面一步步来排查解决:

  • 第一步:确认GD扩展已正确启用
    你用brew装了GD,但不一定已经在PHP环境里生效了。可以新建个测试文件test_gd.php,内容如下:

    <?php
    var_dump(extension_loaded('gd'));
    phpinfo();
    ?>
    

    访问这个文件,如果extension_loaded('gd')返回bool(true),说明GD没问题;如果是false,就得修改PHP配置文件(比如php.ini),添加或取消注释extension=gd这一行,然后重启你的Web服务器(Apache/Nginx之类的)。

  • 第二步:添加正确的Content-Type响应头
    你的代码没告诉浏览器“这是一张PNG图片”,所以浏览器把二进制数据当成文本显示了。修改代码,在调用QRcode::png之前先发送头信息:

    <?php
    // 必须在任何输出之前发送图片类型的响应头
    header('Content-Type: image/png');
    include('../phpqrcode/qrlib.php');
    QRcode::png('PHP QR Code : )');
    ?>
    
  • 第三步:排查是否有提前输出干扰
    还要注意,header()调用之前绝对不能有任何输出——包括PHP文件开头<?php标签前的空格、换行,或者之前的echo/print语句。如果有这些内容,PHP会自动发送默认的文本头,导致你无法设置图片头,同样会出现乱码。检查下你的文件开头有没有多余空白字符,或者include之前有没有输出过内容。

按这几步操作,应该就能正常显示二维码了!

内容的提问来源于stack exchange,提问作者seamus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:29:08