我想在我的codeigniter应用程序中生成条形码,当我包含Zend库和渲染的条形码时它没有呈现,它给出的错误是
The image …cannot displayed its contain errors
当我在新的codeigniter项目中使用相同的代码和库时,它可以正常工作并成功生成条形码.
为什么会这样?
我的代码是:
function gen_barcode()
{
//I'm just using rand() function for data example
$temp = rand(10000, 99999);
$this->set_barcode($temp);
}
private function set_barcode($code)
{
//load library
$this->load->library('zend');
//load in folder Zend
$this->zend->load('Zend/Barcode');
////generate barcode
Zend_Barcode::render('code128', 'image', array('text'=>$code), array());
}
解决方法: 如果你从这里得到它https://github.com/desta88/Codeigniter-Barcode-Generator-Zend-Library
1:在zend库中从CI_Zend中删除CI
文件名Zend.PHP
<?PHP if( ! defined('BASEPATH')) exit('No direct script access allowed');
class Zend { // remove CI_
public function __construct($class = NULL)
{
ini_set('include_path',
ini_get('include_path'). PATH_SEPARATOR. APPPATH. 'libraries');
if($class)
{
require_once(string) $class.'.PHP'; //fixed CI 3 issue by lilsammy
log_message('debug', "Zend Class $class Loaded");
}else
{
log_message('debug', "Zend Class Initialized");
}
}
public function load($class)
{
require_once(string) $class.'.PHP'; //fixed CI 3 issue by lilsammy
log_message('debug', "Zend Class $class Loaded");
}
}
然后在控制器上应该看起来像
文件名:Zend_c.PHP //就像测试一样命名.
<?PHP
class Zend_c extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->library('zend');
$this->zend->load('zend/barcode');
}
public function index() {
$temp = rand(10000, 99999);
echo $this->set_barcode($temp);
}
private function set_barcode($code)
{
return Zend_Barcode::render('code128', 'image', array('text'=>$code), array());
}
}
工作证明
 (编辑:北几岛)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|