背景
在我们公司,人工做的工作越少越好。我们的营销女士找到我,询问是否有办法使用 PHP 自动生成名片。我告诉她,如果她可以将模板保存为 SVG 文件,这应该不是问题。
所以她做到了。编辑文本非常简单,因为我只需找到详细信息空间并将其替换为用户输入。
问题
我目前遇到的最大问题是我从 Google Charts API 获得的二维码。二维码包含名片数据,便于保存到手机。通过调用 Google Charts API 检索 QR 码:
$request = "http://chart.apis.google.com/chart?chs=500x500&cht=qr&chld=M&chl=" . urlencode($vcard);
$vcard
我用 PHP 构建的 VCard在哪里。这是可行的,因为在扫描二维码时可以使用 VCard。
我试过的
由于 SVG 文件中的任何图像都被编码为文本,因此我尝试了以下方法:
file_get_contents($request); // Seems the encoding is of as there are weird characters in the result
img2php.class // Downloaded from PHP Classes, but only converts images in a directory
附加信息
我意识到二维码是生成的PNG。不知道会不会影响回答。
另外,名片中的当前二维码编码如下:
<image overflow="visible" width="200" height="200"
xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEBZwFnAAD/
7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA
EAMCAwYAAAReAAALrQAAHjX/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX
Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBE
** random gibberish **
saaZZmll6QMgIAGkLbb5qxkhmSE47OSXBN9YXg81d+i5LV36LktWPktmRMsMqSFQrXIRg1v8bjuM
2IBmJtpbymu/Rclq79FyWrv0XJasl5p0mGQqABARbQW4fP8A/s//
2Q==" transform="matrix(0.2003 0 0 0.2003 56.5049 191.0313)">
</image>
问题
有没有一种方法可以从 Google API 获取 QR 码,然后将其编码为字符串并将其添加到 SVG 模板中?