Тут подводные камни в основном в том, что сканер запросто может не уметь эмулировать COM и тупо писать в keyboard wedge. В этом случае никаких ивентов ты не отловишь.
1. http://php.net/exec
2. Написать PHP-расширение на Си: devzone.zend.com/article/4486-Wrapping-C-Classes-in-a-PHP-Extension
3. http://pecl.php.net/package/ffi (подгнило вроде как)
4. Написать SOAP, REST или ещё какое-нибудь API и уже через него.
Для сканеров ШК в 1С есть стандартная библиотека, вроде даже нормально документированная. У меня, вроде, всё заводилось без проблем. Единственным нюансом было переключение сканера парой специальных штрих-кодов в serial-режим.
USB-сканеры, если мне не изменяет память, эмулируют клавиатуру. Так что с точки зрения клиентского ПО без разницы, или пользователь в браузере вручную код в поле ввода вбил, или в том же поле ввода код появился автоматом и сразу (лишь бы фокус был на нужно поле).
Любой практически.
Если нет keyboard wedge режима, то решается несколькими строчками на bash+xte.
Если надо, чтобы например, EAN вставлялся строго вот в это поле, а code-39 в вот то, нужно настроить сканер, чтобы он посылал префиксом какую-то комбинцию клавиш или хитрый символ, а потом javascriptом в обработчике document.onkeypress ловить этот символ и перекидывать фокус куда надо.