我在运行基于Web的POS系统的局域网(无头Mac-Mini)中有一个Web服务器。我想为商店的普通员工提供一种可能性,以将热敏票据打印机从收银员1手动切换到收银员2,以防缺纸或其他打印问题,结果客户可以离开商店带有收据,而无需等待纸卷更改(最多5个月)或网络管理员到达(最多5个小时):-)当前解决方案是一个选择框,其生成方式如下(为便于更好地理解而进行了简化) :
<?php
$printers = exec("lpstat -a | cut -f1 -d ' ' >printer.txt");
$p = file('printer.txt');
$tmp = '<select name="printer" autocomplete="off">';
$tmp .= '<option> --- select printer --- </option>';
foreach($p AS $printer) $tmp .= '<option value="' . $printer . '">' . $printer . '</option>';
$tmp .= '</select>';
echo $tmp;
?>
我的问题是,如何能抓住列出的打印机并构建选择框,而又不绕开编写由php读取的文件的弯路。我的意思是,仅在一行中直接使用控制台输出(通过exec),例如,通过添加分隔符,例如; 结果可以在这样的变量中使用(将不起作用,只是为了说明):
<?php
$printers = exec("lpstat -a | cut -f1 -d ' ' **another option to add the delimiter**");
$p_ary = explode(';', $printers);
... build the selectbox ...
?>
该变量$printers
应看起来像Epson_1;Epson_2;Epson_1_cashier2
...,它必须由exec一行提供。
感谢您的想法。