【发布时间】:2011-10-12 20:37:23
【问题描述】:
我有一段简单的代码可以将来自 google post 请求的流输出为 PNG。它用于使用谷歌创建二维码。我想要做的是将它保存为我的服务器上的 PNG 文件,我似乎无法弄清楚如何去做,因为我不太熟悉使用流。代码如下:
<?php
//This script will generate the slug ID and create a QRCode by requesting it from Google Chart API
header('content-type: image/png');
$url = 'https://chart.googleapis.com/chart?';
$chs = 'chs=150x150';
$cht = 'cht=qr';
$chl = 'chl='.urlencode('Hello World!');
$qstring = $url ."&". $chs ."&". $cht ."&". $chl;
// Send the request, and print out the returned bytes.
$context = stream_context_create(
array('http' => array(
'method' => 'POST',
'content' => $qstring
)));
fpassthru(fopen($url, 'r', false, $context));
?>
【问题讨论】:
-
必须是帖子吗?生成的 url 可以作为一个简单的 GET 请求正常工作,这意味着您可以改用
echo file_get_contents(...)。 -
它可以是一个获取请求,但我仍然不确定如何保存它。 code.google.com/apis/chart/infographics/docs/overview.html
-
file_put_contents('qr.png', file_get_contents(...));fpassthru() 用于将输出直接发送到客户端。对于您的代码,您需要 fwrite() 代替之前打开的文件句柄。 -
啊,好的,我已经成功了!容易多了!我试图将流变成字符串并且真的很难摔跤。执行简单的 URL 获取请求有效。我将发布代码作为答案。