文件
mashangyoujiu/Application/Common/Business/CreateFile.class.php

132 行
3.9 KiB
PHP
可执行文件

<?php
namespace Common\Business;
//[1.6.9]
/**
* 创建文件类
* Class CreateFile
* [
* 创建二维码 createQRCode
* 创建微信券码 createWxCode
* 创建微信券码发出请求 wxCodeHttp
* 生成文件目录 createDir
* ]
* @package Common\Business
*/
class CreateFile
{
/**
* 创建二维码
* @param $url 链接
* @param int $size 最大10最小1
* @param $file_path 存放码的文件路径
* @param string $level 控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比
* @return bool
*/
public function createQRCode($url, $size = 10, $file_path, $level = 'L')
{
if (empty($url) || empty($size) || empty($file_path) || empty($level)) {
return false;
}
try {
vendor("phpqrcode.phpqrcode");
$size = min(max((int)$size, 1), 10);
\QRcode::png($url, $file_path, $level, $size, 2); //第五各参数表示空白区域
if (file_exists($file_path)) {
return true;
} else {
return false;
}
} catch (\Exception $e) {
return false;
}
}
/**
* 创建微信券码
* @param $param
* [
* path 跳转的小程序路径
* width 图片宽度
* merchant_id
* file_name
* ]
* @return mixed
*/
public function createWxCode($param)
{
if (empty($param['merchant_id']) || empty($param['path']) || empty($param['file_name'])) {
return callBack(statusCode()['error'], "缺少必要参数");
}
$param['width'] = $param['width'] ? $param['width'] : 430;
$post_data = '{"path":"' . $param['path'] . '","width":' . $param['width'] . '}';
$access_token = get_authorizer_access_tokens($param['merchant_id']);
$url = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" . $access_token;
$result = $this->wxCodeHttp($url, $post_data);
try {
$res = json_decode($result, true);
if (is_array($res)) {
return callBack(statusCode()['error'], $res['errmsg']);
}
} catch (\Exception $e) {
}
$arr = explode('/', $param['file_name']);
unset($arr[count($arr) - 1]);
$file_path = implode('/', $arr);
$this->createDir($file_path);
file_put_contents($param['file_name'], $result);
return callBack(statusCode()['success'], '图片生成成功');
}
/**
* 创建微信券码发出请求
* @param $url
* @param $data
* @return bool|string
*/
public function wxCodeHttp($url, $data)
{
$ch = curl_init();
$header = "Accept-Charset: utf-8";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmpInfo = curl_exec($ch);
if (curl_errno($ch)) {
return false;
} else {
return $tmpInfo;
}
}
/**
* 生成文件目录
* @param $directory_name 目录地址
*/
public function createDir($directory_name)
{
if (!is_dir($directory_name)) {
$temp = ltrim($directory_name, './');
$arr = explode('/', $temp);
$str = '.';
foreach ($arr as $key => $sv) {
if (!is_dir("{$str}/{$sv}")) {
mkdir("{$str}/{$sv}", 0777);
}
$str = "{$str}/{$sv}";
}
}
}
}