php(tp5) 生成二维码
<p><span style="font-size: 18pt">phpqrcode类库官网下载地址:https://sourceforge.net/projects/phpqrcode/</span></p><p> </p>
<p><span style="font-size: 18pt">1.我们先看看php是怎么生成二维码的</span></p>
<p><span style="font-size: 18px"> </span></p>
<p><span style="font-size: 18px"> 1.首先我们先下载一下 phpqrcode 类库。</span></p>
<p> </p>
<p><span style="font-size: 18px"> 2.下载完后解压我们会发现 <span style="color: rgba(255, 0, 0, 1)">phpqrcode文件夹</span> 里面有一堆的文件,但是我们只需要找到 <span style="color: rgba(255, 0, 0, 1)">phpqrcode.php</span> 文件复制, 跟 <span style="color: rgba(255, 0, 0, 1)">index.php <span style="color: rgba(0, 0, 0, 1)">文件放在一起即可,而 <span style="color: rgba(255, 0, 0, 1)">index.php</span> 就是你生成二维码的php代码。</span></span></span></p>
<p><span style="font-size: 18px"><span style="color: rgba(255, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<p><span style="font-size: 18px"><span style="color: rgba(255, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)"> 3.接下来就是代码环节了,复制以下代码黏贴到php文件里保存执行,你就会发现,在index.php文件里面会多出一个文件夹,点开你就会发现里面就是你想要的二维码。</span></span></span><span><br></span></p>
<p><span style="font-size: 18px"><span style="color: rgba(255, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)"> </span></span></span></p>
<div class="cnblogs_code">
<pre><?<span style="color: rgba(0, 0, 0, 1)">php
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">生成二维码</span>
<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> userimg(){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">引入phpqrcode类库文件</span>
<span style="color: rgba(0, 0, 255, 1)">require_once</span> 'phpqrcode.php'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(128, 0, 128, 1)">$value</span> = 'https://www.cnblogs.com/junyi-bk/'; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">二维码内容</span>
<span style="color: rgba(128, 0, 128, 1)">$errorCorrectionLevel</span> = 'L';<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">容错级别</span>
<span style="color: rgba(128, 0, 128, 1)">$matrixPointSize</span> = 5; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">生成图片大小
// 判断是否有这个文件夹没有的话就创建一个</span>
<span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 128, 128, 1)">is_dir</span>("qrcode"<span style="color: rgba(0, 0, 0, 1)">)){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 创建文件加</span>
<span style="color: rgba(0, 128, 128, 1)">mkdir</span>("qrcode"<span style="color: rgba(0, 0, 0, 1)">);
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置二维码图片名称,以及存放的路径</span>
<span style="color: rgba(128, 0, 128, 1)">$filename</span> = 'qrcode/'.<span style="color: rgba(0, 128, 128, 1)">time</span>().<span style="color: rgba(0, 128, 128, 1)">rand</span>(10000,9999999).'.png'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">使用类库生成二维码</span>
QRcode::png(<span style="color: rgba(128, 0, 128, 1)">$value</span>,<span style="color: rgba(128, 0, 128, 1)">$filename</span> , <span style="color: rgba(128, 0, 128, 1)">$errorCorrectionLevel</span>, <span style="color: rgba(128, 0, 128, 1)">$matrixPointSize</span>, 2<span style="color: rgba(0, 0, 0, 1)">);<br> <br> //如果需要转换成base64数据,解开下面这行注释即可<br> //$image_data = chunk_split(base64_encode(fread(fopen($filename, 'r'), filesize($filename))));</span></pre>
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">二维码路径</span> <span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">$filename</span><span style="color: rgba(0, 0, 0, 1)">; <br>} <br><br></span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">调用生成二维码方法</span> <span style="color: rgba(0, 0, 255, 1)">echo</span> userimg();</pre>
</div>
<p> </p>
<p><span style="font-size: 18pt">2.上面就是纯php生成二维码的方法了,那么我们来看看用tp5是怎么生成二维码的</span></p>
<p> </p>
<p><span style="font-size: 18pt"> 1.首先我们先下载一下 phpqrcode 类库,还是一样,需要用到phpqrcode类库。</span></p>
<p> </p>
<p><span style="font-size: 18pt"> 2.取出 phpqrcode.php,然后放到 vendor文件夹里面(vendor的作用就是用来放第三方类库)</span></p>
<p><span style="font-size: 18pt"> </span></p>
<p><span style="font-size: 18pt"> 3.准备工作都做好了,接下来就是代码环节了,只需要在控制器里面写入并调用以下方法,即可看到你要的二维码了</span></p>
<p><span style="font-size: 18pt"> </span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">二维码</span>
<span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> UserImg(){
vendor(</span>'phpqrcode');<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">引入类库</span>
<span style="color: rgba(128, 0, 128, 1)">$value</span> = 'https://www.cnblogs.com/junyi-bk/'; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">二维码内容</span>
<span style="color: rgba(128, 0, 128, 1)">$errorCorrectionLevel</span> = 'L';<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">容错级别</span>
<span style="color: rgba(128, 0, 128, 1)">$matrixPointSize</span> = 5; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">生成图片大小
//生成二维码图片
// 判断是否有这个文件夹没有的话就创建一个</span>
<span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 128, 128, 1)">is_dir</span>("qrcode"<span style="color: rgba(0, 0, 0, 1)">)){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 创建文件加</span>
<span style="color: rgba(0, 128, 128, 1)">mkdir</span>("qrcode"<span style="color: rgba(0, 0, 0, 1)">);
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置二维码文件名</span>
<span style="color: rgba(128, 0, 128, 1)">$filename</span> = 'qrcode/'.<span style="color: rgba(0, 128, 128, 1)">time</span>().<span style="color: rgba(0, 128, 128, 1)">rand</span>(10000,9999999).'.png'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">生成二维码</span>
\QRcode::png(<span style="color: rgba(128, 0, 128, 1)">$value</span>,<span style="color: rgba(128, 0, 128, 1)">$filename</span> , <span style="color: rgba(128, 0, 128, 1)">$errorCorrectionLevel</span>, <span style="color: rgba(128, 0, 128, 1)">$matrixPointSize</span>, 2<span style="color: rgba(0, 0, 0, 1)">);<br><br></span></pre>
<pre><span>//如果需要转换成base64数据,解开下面这行注释即可<br> //$image_data = chunk_split(base64_encode(fread(fopen($filename, 'r'), filesize($filename))));</span></pre>
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取当前域名</span> <span style="color: rgba(128, 0, 128, 1)">$request</span> = Request::<span style="color: rgba(0, 0, 0, 1)">instance(); </span><span style="color: rgba(128, 0, 128, 1)">$domain</span> = <span style="color: rgba(128, 0, 128, 1)">$request</span>-><span style="color: rgba(0, 0, 0, 1)">domain(); <br><br></span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">$domain</span>.'/'.<span style="color: rgba(128, 0, 128, 1)">$filename</span><span style="color: rgba(0, 0, 0, 1)">; <br>} </span></pre>
</div>
<p> </p><br><br>
来源:https://www.cnblogs.com/junyi-bk/p/11577237.html
頁:
[1]