我想希望显示URL的QR码。 我尝试这个但是dind't工作,我想我的代码不保存在我的电脑上的网址,他失败跑到他试图打开该QR码
$imageUrl = 'https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=toto';
$imagePath = sys_get_temp_dir() . '\\' . basename($imageUrl);
file_put_contents($imagePath, file_get_contents($imageUrl));
$image = Zend_Pdf_Image::imageWithPath($imagePath);
unlink($imagePath);
$page = $this->newPage($settings);
$page->drawImage($image, 0, 842 - 153, 244, 842);
谢谢
您遇到的问题是与basename
的URL,你要设置为文件名,这会导致类似C:\TEMP\chart?chs=150x150&cht=qr&chl=toto
,这不是一个有效的文档名称。
您也可以不使用“下载”的形象file_get_contents
。 你需要使用cURL
。 像这样的东西应该做的工作:
$imageUrl = 'https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=toto';
$imgPath = sys_get_temp_dir() . '/' . 'qr.png';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $imageUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$raw = curl_exec($ch);
if (is_file($imgPath)) {
unlink($imgPath);
}
$fp = fopen($imgPath, 'x');
fwrite($fp, $raw);
fclose($fp);
然后你可以用$imgPath
创建PDF图像。