php – Zend条形码没有呈现?在CodeIgniter中

我想在我的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());
    }
}

工作证明

php  –  Zend条形码没有呈现?在CodeIgniter中

上一篇:Sequence Model - Sequence Models & Attention Mechanism


下一篇:java – 在itext中向表中的单元格添加更多文本