php study教程(Tp框架如何生成二维码)

本文目录
Tp框架如何生成二维码
下面由thinkphp框架教程栏目给大家介绍Tp框架生成二维码的方法,希望对需要的朋友有所帮助!
基础环境系统环境:Windows10 x64PHP集成环境:phpstudyPHP依赖管理工具:Composer(一) 安装qr-code扩展
composer require endroid/qr-code(二)代码实现(代码亲测有效)
《?php
namespace appcommonservice;
use JrkRandom;
use EndroidQrCodeQrCode;
use thinkException;
class QrcodeSrvice
{
/**
* @param $text
* @param int $size
* @param bool $domain
* @return string
* @author: Hhy 《jackhhy520@qq.com》
* @describe:生成普通二维码
*/
public static function make_qrcode($text,$size=105,$domain=false){
$img_name = Random::alnum(15);
$n = date("Ym");
$dir= app()-》getRootPath()."public/qrcode/code/".$n;
//判断目录是否存在
if (!is_dir($dir)) {
mkdir($dir, 0777, true);
}
$pathname = $dir."/" . $img_name . ’.png’;
$qrCode = new QrCode();
$qrCode-》setText($text)
-》setSize($size)
-》setPadding(15)
-》setErrorCorrection(’high’)
-》setForegroundColor(array(’r’ =》 0, ’g’ =》 0, ’b’ =》 0, ’a’ =》 0))
-》setBackgroundColor(array(’r’ =》 255, ’g’ =》 255, ’b’ =》 255, ’a’ =》 0))
-》setImageType(QrCode::IMAGE_TYPE_PNG);
try {
$qrCode-》save($pathname);
$str="/qrcode/code/".$n."/". $img_name . ’.png’;
if ($domain){
return request()-》domain().$str;
}else{
return $str;
}
} catch (EndroidQrCodeExceptionsImageTypeInvalidException $exception) {
return "";
}
}
/**
* @param $text
* @param $logo
* @return string
* @throws Exception
* @author: Hhy 《jackhhy520@qq.com》
* @describe:生成带logo 的二维码
*/
public static function QrCodeWithLogo($text,$logo,$domain=false){
if (!file_exists($logo)){
exception("logo地址不存在");
}
$img_name = Random::alnum(15);
$n = date("Ym");
$dir= app()-》getRootPath()."public/qrcode/".$n;
//判断目录是否存在
if (!is_dir($dir)) {
mkdir($dir, 0777, true);
}
$pathname = $dir."/" . $img_name . ’.png’;
$qrCode = new QrCode();
$qrCode-》setText($text)
-》setSize(300)
-》setLogo($logo)
-》setLogoSize(60)
-》setErrorCorrection(’high’)
-》setForegroundColor(array(’r’ =》 0, ’g’ =》 0, ’b’ =》 0, ’a’ =》 0))
-》setBackgroundColor(array(’r’ =》 255, ’g’ =》 255, ’b’ =》 255, ’a’ =》 0))
-》setImageType(QrCode::IMAGE_TYPE_PNG);
$qrCode-》save($pathname);
$str="/qrcode/".$n."/". $img_name . ’.png’;
if ($domain){
return request()-》domain().$str;
}else{
return $str;
}
}
}
php如何实现音频格式转换
php音频格式转换的实现方法:首先把ffmpeg放在phpStudy的WWW目录下;然后把ffmpeg下的bin目录添加到windows的环境变量中;最后通过ffmpeg转换音频格式即可。
推荐:《PHP视频教程》
windows+php+ffmpeg转换音频格式
近几天在做一个语音识别搜索功能的时候遇到了一个问题 ,发个文章记录一下,萌新第一次发博客,有不对的地方请各位大佬们多多指正!
前端用的微信的sdk生成的录音,然后用阿里的一句话识别转成文字,这里遇到的坑就是阿里不支持微信返回的音频格式,所以这里需要处理一下格式,经过了一顿百度,决定使用ffmpeg进行音频的转换
***隐藏网址***
我为了方便调试我把ffmpeg放在phpStudy的WWW目录下了 如图:
其中ffmpeg.php是我自己写的,代码贴在下面
之后把ffmpeg下的bin 目录添加到windows的环境变量,具体操作这里就不说了,学过java的都清楚,如记不清了可百度一下
话不多说,直接上代码.《?php
/**
* @api音频文件格式转换-将silk转为wav
* @author wyp
*/
header("content-type:text/html;charset=utf-8");
date_default_timezone_set(’Asia/Shanghai’);
define(’BASE_PATH’, str_replace(’’, ’/’, realpath(dirname(__FILE__) . ’/’)) . "/");
//域名
$domain = $_SERVER;
/**
* 由于每次访问时会将音频文件上传到服务器上,所以我这里先把之前上传到服务器的音频删除
*/
$dir = scandir(’./’);
foreach ($dir as $key =》 $value) {
if (substr($value, -4) == ’.wav’) {
if ($value == $_GET) {
continue;
}
$filemtime = fileatime($value);
if (time() - $filemtime 》 10) {
unlink($value);
}
}
}
//接收文件
if (!isset($_GET)) {
echo json_encode([
’code’ =》 400,
’info’ =》 ’文件路径为空’,
]);
exit;
}
$filepath = $_GET;
$in_time = date(’Y-m-d-h-i-s’, time());
@$copy = copy($filepath, ’./in_’ . $in_time . ".silk");//这里将文件下载到本地服务器
if (!$copy) {
echo json_encode([
’code’ =》 400,
’info’ =》 ’请检查文件路径’,
]);
exit;
}
$filepath = "in_" . $in_time . ".silk";
//输出文件名
$rank = "rec";
for ($i = 1; $i 《 9; $i++) {
$rank .= rand(0, 9);
}
$outfile = $rank . "-" . date(’Y-m-d-h-i-s’, time()) . ".wav";
//绝对地址(D://phpstudy/www/...)
$base = BASE_PATH;
//要执行的cmd命令
$cmd = "ffmpeg -i $base" . "$filepath " . "$base$outfile";
//执行cmd命令
exec($cmd);
//删除接收到的文件
unlink(’./in_’ . $in_time . ".silk");
//返回结果
echo json_encode([
’code’ =》 200,
’cmd’ =》 $cmd,//执行的cmd
’outfile’ =》 "$domain/ffmpeg/bin/$outfile"//文件路径
]);
?》

更多文章:
unix时间戳字段异常值怎么处理(怎么对统计数据的异常值进行判断和处理)
2026年5月15日 06:00
java视频教程马士兵(哪里可以下载全部马士兵JAVA视频教程)
2026年4月6日 02:00
程序员最喜欢的编辑器颜色(我终于知道为什么很多程序员编辑器都用暗色背景了)
2026年7月12日 13:00
必会失去随机存取功能(计算机储存中断电后其中信息会丢失的是什么)
2026年5月16日 20:15
unicode字符转换(Unicode 与 UTF-8 之间的转换)
2025年9月26日 12:00
stack英语(叠什么意思近义词和反义词是什么英文翻译是什么)
2025年7月31日 18:00
没有建站经验怎样创建一个属于自己网站?网站建设的前期准备,建站前须知的几点准备事项
2026年8月18日 03:45
floating tobu(求初音easy dance的歌词啊~~~~~)
2025年7月30日 15:00
减肥为什么不用lose weight(put on 、 put off、 put up、 put down、哪个有 减肥 的意思)
2026年7月27日 16:15













