Я бы подошел к этому по-другому - форма, содержащая элемент управления, удаляет фокус с элемента управления, когда пользователь нажимает на другую часть формы.
Наличие элемента управления на самом деле потеря фокуса намного чище, чем попытка заставить элемент управления «симулировать» потерю фокуса в определенных ситуациях, хотя на самом деле это не так. Имейте в виду, что если элемент управления не потерял фокус, он все равно будет принимать такие вещи, как ввод с клавиатуры.
Используйте функцию, которая В PHP для этого есть:
$cmd =
"/usr/bin/do-something " .
escapeshellarg($arg1) .
' ' .
escapeshellarg($arg2);
Вы также можете использовать escapeshellcmd ()
В чем разница?
escapeshellarg ()
ТОЛЬКО добавляет 'вокруг строки, а затем \ перед любыми другими' символами.
http://www.php.net/escapeshellarg
escapeshellcmd ()
экранирует все зависимые от оболочки символы ($, \ и т. Д.), Но не добавляет кавычек.
http://www.php.net/manual/en/function.escapeshellcmd.php
Проблема заключается в том случае, если вы используете escapeshellarg ()
как ЧАСТЬ ЦИТАТА параметра. Затем он становится бесполезным (фактически добавляя кавычки к смеси).
Вообще говоря, мы предпочитаем использовать escapeshellcmd ()
с добавлением наших собственных кавычек.
$cmd =
"/usr/bin/do-something '" .
escapeshellcmd($arg1) .
"' '" .
escapeshellcmd($arg2) .
"'";
Будьте осторожны!