本帖最后由 独行剑侠 于 2023-2-4 15:55 编辑
网络找了个生成二维码的API,想要将生成PNG图片改为SVG,出现报错,求助大神解决~
原有:
[PHP] 纯文本查看 复制代码 //简单二维码生成函数
function createqr($value,$errorCorrectionLevel,$matrixPointSize,$margin) {
QRcode::png($value, false, $errorCorrectionLevel, $matrixPointSize, $margin);
修改报错了:
[PHP] 纯文本查看 复制代码 //简单二维码生成函数
function createqr($value,$errorCorrectionLevel,$matrixPointSize,$margin) {
QRcode::svg($value, false, $errorCorrectionLevel, $matrixPointSize, $margin);
然后发现api无法调用phpqrcode.php。
晕头了,求助大神~~~伸出援手~~~
调用的完整PHP二维码api
[PHP] 纯文本查看 复制代码 <?php
//载入qrcode类
include "../code/phpqrcode.php";
//取得GET参数
$url = isset($_GET["text"]) ? $_GET["text"] : 'help';
$errorLevel = isset($_GET["e"]) ? $_GET["e"] : 'H';
$PointSize = isset($_GET["p"]) ? $_GET["p"] : '3';
$margin = isset($_GET["m"]) ? $_GET["m"] : '6';
preg_match('/http:\/\/([\w\W]*?)\//si', $url, $matches);
//简单判断
//if ( $matches[1] != 'api.xxx.cn' && $matches[1] != 'xxx.cn' || $url == 'help') { //取消此行注释并注释下面一行,就能加入自定义的url过滤功能
if ( $url == 'help'){
header("Content-type: text/html; charset=utf-8");
echo '<title>在线二维码API接口</title>';
echo '<h1>在线二维码API服务</h1>
使用前请仔细查看参数说明:<br />
<br />
text : 二维码对应的内容,默认值: help<br /><br />
m : 二维码白色边框尺寸,默认值: 3px<br /><br />
e : 容错级别(errorLevel),可选参数如下(默认值 H):<br /><br />
L 7%的字码可被修正<br />
M 15%的字码可被修正<br />
Q 25%的字码可被修正<br />
H 30%的字码可被修正<br /><br />
p : 二维码尺寸,可选范围1-10(具体大小和容错级别有关)(默认值:6)<br /><br />
常规用法:<a target="_blank"><a href="https://api.xxx.cn/code?m=3&e=H&p=6&text=https://www.xxx.cn/
<a href="https://api.xxx.cn/code?m=3&e=H&p=6&text=https://www.xxx.cn/
https://api.xxx.cn/code?m=3&e=H&p=6&text=https://www.xxx.cn/</a><br /><br />
';
exit();
} else {
//调用二维码生成函数
createqr($url, $errorLevel, $PointSize, $margin);
}
//简单二维码生成函数
function createqr($value,$errorCorrectionLevel,$matrixPointSize,$margin) {
QRcode::png($value, false, $errorCorrectionLevel, $matrixPointSize, $margin);
}
?>
已解决。
原来是目录调用错误,
脑子就是不好使了,晕头了压根没看目录调用。
最终:
[PHP] 纯文本查看 复制代码 <?php
//载入qrcode类
include "phpqrcode.php";
//取得GET参数
$url = isset($_GET["text"]) ? $_GET["text"] : 'help';
$errorLevel = isset($_GET["e"]) ? $_GET["e"] : 'H';
$PointSize = isset($_GET["p"]) ? $_GET["p"] : '3';
$margin = isset($_GET["m"]) ? $_GET["m"] : '6';
preg_match('/http:\/\/([\w\W]*?)\//si', $url, $matches);
//简单判断
//if ( $matches[1] != 'api.xxx.cn' && $matches[1] != 'xxx.cn' || $url == 'help') { //取消此行注释并注释下面一行,就能加入自定义的url过滤功能
if ( $url == 'help'){
header("Content-type: text/html; charset=utf-8");
echo '<title>在线二维码API接口 | 楠格</title>';
echo '<h1>在线二维码API服务</h1>
使用前请仔细查看参数说明:<br />
<br />
text : 二维码对应的内容,默认值: help<br /><br />
m : 二维码白色边框尺寸,默认值: 3px<br /><br />
e : 容错级别(errorLevel),可选参数如下(默认值 H):<br /><br />
L 7%的字码可被修正<br />
M 15%的字码可被修正<br />
Q 25%的字码可被修正<br />
H 30%的字码可被修正<br /><br />
p : 二维码尺寸,可选范围1-10(具体大小和容错级别有关)(默认值:6)<br /><br />
常规用法:<a target="_blank">https://baidu.com/</a><br /><br />
';
exit();
} else {
//调用二维码生成函数
createqr($url, $errorLevel, $PointSize, $margin);
}
//简单二维码生成函数
function createqr($value,$errorCorrectionLevel,$matrixPointSize,$margin) {
QRcode::svg($value, false, $errorCorrectionLevel, $matrixPointSize, $margin);
}
?>
|