PHP如何保存api.qrserver.com/v1/create-qr-code生成的二维码

PHP how to save qr code generated in api.qrserver.com/v1/create-qr-code

我的 php 脚本中生成了一个二维码,输出标签是这样的:

<img src="http://api.qrserver.com/v1/create-qr-code/?data=http://example.com/url321&amp;size=256x256&amp;color=000000&amp;bgcolor=ffffff&amp;margin=1px" alt="Scan QR-Code" title="Scan QR-Code" width="256px" height="256px">

现在,我想将这个生成的图像保存在我的主机上 我如何使用 PHP 执行此操作?

我试过这段代码但没有成功:

//This line generates qr code:
$qrsrc = 'http://api.qrserver.com/v1/create-qr-code/?data='.$url.'&amp;size='.$size.'&amp;color='.$color.'&amp;bgcolor='.$bgcolor;

//And the following lines try to store it:
$image_name = 'test.png';
$save_path = 'files/qrcode/'.$image_name;
$image_file = fopen($save_path, 'wb');
fwrite($image_file, $qrsrc);
fclose($image_file);

此代码创建图像文件。但图像不是正确的文件... 谢谢。

您实际上并没有获取图像。您只是将文字 URL 作为文本存储在 test.png 文件中。

首先获取图像:

$qrsrc = 'http://api.qrserver.com/v1/create-qr-code/?data='.$url.'&amp;size='.$size.'&amp;color='.$color.'&amp;bgcolor='.$bgcolor;
// Get the image and store it in a variable
$image = file_get_contents($qpsrc);   

// Save the file
$image_name = 'test.png';
$save_path = 'files/qrcode/'.$image_name;

// Save the image
file_put_contents($save_path, $image);

注意: 要使用 file_get_contents() 获取 URL,您需要确保已启用 allow_url_fopen .我使用的大多数安装都已默认启用它。
您可以阅读更多相关信息 in the manual