Использование awk:
awk '{gsub(/[;(),'\'']/," "); gsub(/ */," "); print}' your_file
Не используйте для этого PHP (или, по крайней мере, только PHP). Это, вероятно, самая утечка и нарушение реализации скриптового языка web на данный момент.
Разделите проблему на три части:
передняя часть - код PHP (Python, Ruby, Perl...), который создает веб-страницу.
front end - shell, Perl скрипт, скомпилированный бинарный, который получает доступ к устройству. Не запускайте его под root
. Настройте отдельную учетную запись только для этой задачи и разрешите ей доступ к ней по мере необходимости. Если chmod
или setfacl
недостаточно и вы работаете в Linux, используйте возможности Linux (смотрите страницу man-страницы capabilities(7)
), установленные с помощью setcap
или capsh
.
протокол связи и средства, используемые между передней и задней частями. В идеале он должен быть как можно более ограниченным, в основном позволяя передней стороне опрашивать заднюю сторону. В зависимости от того, что вам нужно, это может быть так же просто, как отправка сообщений типа "считать до 1 КБ с устройства" и "записать этот 7812Б на устройство" через гнездо Unix или именованную трубу (см. mkfifo
).