用于生成 code128 的 php 文件在 codeigniter 中不起作用

我尝试从库中运行并且错误地打印了条形图,但所有问题都出在脚本中,由于某种原因与 CI 冲突......我想将来我必须将代码调整为 CI。



<?php


function bar128($text) { // Part 1, make list of widths

 $char128asc=' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'; 

$char128wid = array(

 '212222','222122','222221','121223','121322','131222','122213','122312','132212','221213', // 0-9 

 '221312','231212','112232','122132','122231','113222','123122','123221','223211','221132', // 10-19 

 '221231','213212','223112','312131','311222','321122','321221','312212','322112','322211', // 20-29 

 '212123','212321','232121','111323','131123','131321','112313','132113','132311','211313', // 30-39 

 '231113','231311','112133','112331','132131','113123','113321','133121','313121','211331', // 40-49 

 '231131','213113','213311','213131','311123','311321','331121','312113','312311','332111', // 50-59 

 '314111','221411','431111','111224','111422','121124','121421','141122','141221','112214', // 60-69 

 '112412','122114','122411','142112','142211','241211','221114','413111','241112','134111', // 70-79 

 '111242','121142','121241','114212','124112','124211','411212','421112','421211','212141', // 80-89 

 '214121','412121','111143','111341','131141','114113','114311','411113','411311','113141', // 90-99

 '114131','311141','411131','211412','211214','211232','23311120' ); // 100-106

 $w = $char128wid[$sum = 104]; // START symbol

 $onChar=1;

 for($x=0;$x<strlen($text);$x++) // GO THRU TEXT GET LETTERS

 if (!( ($pos = strpos($char128asc,$text[$x])) === false )){ // SKIP NOT FOUND CHARS

 $w.= $char128wid[$pos];

 $sum += $onChar++ * $pos;

 } 


首先,我对 Codeigniter 非常菜鸟。


我找到了这个 php 代码来生成 code128,我需要从数据库打印多个标签,然后发送到 Zebra 打印机。


在纯 php 上它工作得很好,但是当使用库集成到 codeigniter 时,条形不会打印。除了条形图,所有东西都在打印。


在评论中的代码中,您可以看到我所有的尝试。


阿波罗的战车
浏览 161回答 2
2回答

动漫人物

您实际上并不需要 Myzend 库或需要任何文件。您只需修改 bar128 类文件以遵循自定义 CI 库的命名约定。一个快速开始的方法是使用配置文件中定义的前缀重命名文件。然后,在其构造函数中,初始化库中所有其他方法都应该使用的 CI 实例。parent::__construct();&nbsp;$CI =& get_instance();然后你可以用该类中的 $CI 替换每个 $this 。

慕无忌1623718

一般建议(可能是 codeigniter 中的问题):此路径相对于您的库(或第三方)目录中的 lib 文件。require('Zend/barcode128.php');如果您希望从其他地方使用它,最好使用预定义的相对路径(BASEPATH、APPPATH、FCPATH 等)。例如require(APPPATH&nbsp;.&nbsp;'libraries/zend/barcode128.php');将寻找 /application/libraries/zend/barcode128.php还尝试仅使用第一个大写名称作为 lib 名称,例如更改此名称class&nbsp;MyZend&nbsp;extends&nbsp;Bar128&nbsp;{至class&nbsp;Myzend&nbsp;extends&nbsp;Bar128&nbsp;{有时(tm)Codeigniter 不能很好地为库、助手等命名。创建库主文件的一种安全方法是使用第一个大写字母和其余小写字母命名它们,例如您的案例文件名应该是“Myzend.php”。至于在 codeigniter 中启用日志:在 config.php 中:$config['log_threshold']&nbsp;=&nbsp;4;将日志设置为包含 INFO,可能有助于查找错误
打开App,查看更多内容
随时随地看视频慕课网APP