Eu tenho um servidor web em uma rede local (headless Mac-Mini), executando um sistema de POS baseado na web. Quero oferecer uma possibilidade aos funcionários regulares da loja, trocar manualmente a impressora térmica de recibos do caixa 1 para o caixa 2, em caso de falta de papel ou outros problemas de impressão, com o resultado, que o cliente pode sair da loja com o recibo, sem precisar esperar pelo rolo de papel alterado (até 5 mnts.) ou chegada de administrador de rede (até 5 horas) :-) A solução atual é uma selectbox, que é gerada assim (simplificada para melhor entendimento):
<?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;
?>
Minha pergunta é, como seria possível pegar as impressoras listadas e construir o selectbox sem o desvio de escrever um arquivo que é lido por php depois. Quero dizer, usando a saída do console (via exec) diretamente em apenas uma linha, por exemplo, adicionando um delimitador como; que o resultado pode ser usado em uma variável como essa (não funciona, apenas para explicar):
<?php
$printers = exec("lpstat -a | cut -f1 -d ' ' **another option to add the delimiter**");
$p_ary = explode(';', $printers);
... build the selectbox ...
?>
A variável $printers
deve parecer Epson_1;Epson_2;Epson_1_cashier2
... que deve ser fornecido pelo exec em uma única linha.
Obrigado pelas suas ideias.