为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
阿波罗的战车 2021-06-11 18:41:54
我尝试从库中运行并且错误地打印了条形图,但所有问题都出在脚本中,由于某种原因与 CI 冲突......我想将来我必须将代码调整为 CI。<?phpfunction 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 时,条形不会打印。除了条形图,所有东西都在打印。在评论中的代码中,您可以看到我所有的尝试。
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

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

然后你可以用该类中的 $CI 替换每个 $this 。


查看完整回答
反对 回复 2021-06-19
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

一般建议(可能是 codeigniter 中的问题):

此路径相对于您的库(或第三方)目录中的 lib 文件。

require('Zend/barcode128.php');

如果您希望从其他地方使用它,最好使用预定义的相对路径(BASEPATH、APPPATH、FCPATH 等)。例如

require(APPPATH . 'libraries/zend/barcode128.php');

将寻找 /application/libraries/zend/barcode128.php

还尝试仅使用第一个大写名称作为 lib 名称,例如更改此名称

class MyZend extends Bar128 {

class Myzend extends Bar128 {

有时(tm)Codeigniter 不能很好地为库、助手等命名。

创建库主文件的一种安全方法是使用第一个大写字母和其余小写字母命名它们,例如您的案例文件名应该是“Myzend.php”。

至于在 codeigniter 中启用日志:在 config.php 中:

$config['log_threshold'] = 4;

将日志设置为包含 INFO,可能有助于查找错误


查看完整回答
反对 回复 2021-06-19
  • 2 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信