QRCode PHP生成二维码类库

使用类库的方法 include("Common/QRCode.class.php"); $QRCode= new QRCode(); $categoryList = $QRCode->getUrl(); 以下是php生成二维码完整类库 /** * 类功能:将指定URL利用google api生成二维码保存到本地并返回本地访问url * author:252588119@qq.com * 使用方法见:http://liqingbo.cn/blog-435.html */ class QRCode { private $path; private $size; public function __construct($path, $size{ $this->path = empty($path) ? C('webPath') . "/Uploads/QRCode/" : $path; $this->size = empty($size) ? 80 : $size; } /** * 检测存储目录是否存在,不存在则创建该目录 */ private function makeDir($path) { return is_dir($path) or ($this->makeDir(dirname($path)) and @mkdir($path, 0777)); } /** * 取得二维码地址 */ public function getUrl($url = "http://liqingbo.cn/blog-435.html") { $inPath = 'http://chart.apis.google.com/chart?chs=' . $this->size . 'x' . $this->size . '&cht=qr&chld=L|0&chl=' . $url; $savePath = $_SERVER['DOCUMENT_ROOT'] . $this->path; $this->makeDir($savePath); $fileName = substr(md5("$url"), 8, 16) . "_" . $this->size . ".png"; $savePath.=$fileName; $outUrl = "http://" . $_SERVER['HTTP_HOST'] . $this->path . $fileName; if (file_exists($savePath) && filesize($savePath) > 0) { return $outUrl; } $in = fopen($inPath, "rb"); $out = fopen($savePath, "wb"); while ($chunk = fread($in, 8192)) fwrite($out, $chunk, 8192); fclose($in); fclose($out); if (filesize($savePath) == 0) { $this->getUrl($url); } else { return $outUrl; } } }
联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2022

备案号:京ICP备15003423号-3