Generating QR Code using PHP QrCode
在使用php qr code lib之后,我发现在使用带有脚本和对话框(jquery)的动态页面时,出于某种原因,当尝试以.png格式输出二维码时,我会得到奇怪的符号,而不是实际生成的.png文件。
以下是我的尝试:
创建了一个单独的文件,其中只包含:
1 2 3 4 5 6 | <?php //include only that one, rest required files will be included from it include"phpqrcode/qrlib.php"; QRcode::png('barrda554'); ?> |
工作很棒,
尝试2:
使用jquery ui在对话框中打开的文件类型:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php header stuff... include"phpqrcode/qrlib.php"; ... ?> <html> ... <?php QRcode::png('barrda554'); ?> .. </html> |
在这次尝试中,我得到了多个奇怪的符号,原因是:
1 2 3 4 | ?PNG IHDRWWKK/PLTE???U??~?IDAT8??? ? P# ?c??n :V?L?@?k y??)?|F??5`?zHF|l??? %Z"e?Ы?D{\??????p`?f?eh???????k?[BJeJ?c????,?^?gu?m|Q??o??W????g? ?#?s?<?y??k?m??!v?.??(+?u???$s?-?n$?>?gR?`IEND?B`? |
这让我很困惑,我不确定该如何解决这个问题。
告诉我你的想法,
戴维
更新:
在jquery打开的文件中放入
以下是实际文件:
http://jsfiddle.net/t4nep/
问题在于:
1 2 3 4 5 | <html> <?php QRcode::png('barrda554'); ?> </html> |
为了理解这是在做什么,假设您在文本编辑器中打开一个常规的PNG文件,然后直接将内容复制/粘贴到HTML文件中。它不会显示图像-就像你看到的,它只是垃圾。
要在HTML文件中包含图像,需要使用
1 | <img src="qrcode.php"> |
然后在qrcode.php中生成图像:
1 2 3 4 | <?php include"phpqrcode/qrlib.php"; QRcode::png('barrda554'); ?> |
如果您需要HTML页面中的一些信息来生成图像,可以将其作为查询参数包含在URL中,如下所示:
1 | <img src="qrcode.php?product=1&format=2"> |
然后在PHP中得到这些值,如下所示:
1 2 3 4 5 6 7 8 9 | <?php include"phpqrcode/qrlib.php"; $product = $_GET['product']; $format = $_GET['format'] // ... // whatever you need to do to generate the proper code // ... QRcode::png('barrda554'); ?> |
最后,还有一些方法可以将图像数据直接包含到HTML页面中,但并非所有浏览器都支持这种方法,因此不推荐使用这种方法,因为它会使页面大小变得更大,并阻止浏览器单独缓存图像。
您可以在这里看到关于base64数据URL的更多信息。
确保您有以下PHP代码来生成正确的
1 |