2015-05-30 36 views
1

我一直在玩尝试从一个字符串生成QR码没有任何运气。我使用的是CodeIgniter。我已经尝试了Packagist,培根/培根-qr代码和endroid/qrcode两个不同的软件包。下面是在我的控制器代码为培根:如何从PHP中的字符串生成QR码?

$renderer = new \BaconQrCode\Renderer\Image\Png(); 
     $renderer->setHeight(256); 
     $renderer->setWidth(256); 
     $writer = new \BaconQrCode\Writer($renderer); 
     $writer->writeFile('Hello World!', 'qrcode.png'); 

当我运行这段代码我得到错误“的phpass类文件未找到”。 因此,我通过spark安装了phpass,但仍然收到相同的错误。谁能告诉我我做错了什么?

回答

0

您可以使用Google QR Codes API.

https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=Hello+world&choe=UTF-8 
  • 300x300的生成字符串的QR码是你的图像大小。
  • chl - url编码字符串将其转换为qr码。
+0

感谢您的回答。我在阅读附近的计算器时看到了这一点,但有些人评论说谷歌在2015年停止了这项服务。我会继续尝试,但仍然无法使它工作! –

+0

你读过吗? '警告:此API已于2012年4月20日弃用。它将继续按照我们的弃用政策运作。' – Viral

1

第一个也在工作(也可能是第二个)。 你需要使用这种方式(至少):

APPPATH . 'libraries/Qrcode.php'

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

use \BaconQrCode\Renderer\Image\Png; 
use \BaconQrCode\Writer; 

class Qrcode 
{ 
    public function test() 
    { 
     $renderer = new Png(); 

     $renderer->setHeight(256); 
     $renderer->setWidth(256); 
     $writer = new Writer($renderer); 
     $writer->writeFile('Hello World!', 'qrcode.png'); 
     //var_dump($writer); 
    } 
} 

APPPATH . 'controllers/Test.php'

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Test extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function index() 
    { 
     $this->qrcode(); 
    } 

    public function qrcode() 
    { 
     $this->load->library('qrcode'); 

     $this->qrcode->test(); 
    } 
} 

和形象将在FCPATH . 'qrcode.png'文件生成。

+0

非常感谢,我现在就试试! –