1

У меня есть веб-сервер в локальной сети (безголовый Mac-Mini), на котором запущена POS-система на базе Интернета. Я хочу предоставить штатным сотрудникам магазина возможность переключать термопринтер для чеков вручную с кассира 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;

?>

Мой вопрос заключается в том, как можно было бы захватить перечисленные принтеры и построить selectbox без объезда записи файла, который читается 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 в одной строке.

Спасибо за ваши идеи.

0