Я хочу сгенерировать штрих–код в моем приложении codeigniter, когда я включаю библиотеки Zend и визуализированный штрих-код его не отображается, и он дает ошибку,
Изображение … не может отображать свои ошибки
когда я использую тот же код и библиотеки в новом проекте 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 из CI_Zend
Имя файла 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 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()); } }
Рабочее свидетельство