escapeshellcmd(PHP 3, PHP 4) escapeshellcmd - escape-ирование метасимволов оболочки/shell. Описаниеstring escapeshellcmd (string command) escapeshellcmd() заменяет мнемониками любые символы в строке, что может использоваться для выполнения в оболочке произвольных команд. Эта функция должна использоваться для гарантирования того, что любые данные, приходящие от пользователя, escape-ируются, прежде чем передаются функциям exec() или system(), или операции backtick. Стандартное использование таково:
См. также escapeshellarg(), exec(), popen(), system() и операцию backtick. |
||||||||||
|
||||||||||
Эта опция позволяет выполнять PHP прямо в командной строке. Начальный и конечный тэги PHP (<?php и ?>) не нужны и вызывают ошибки разборщика.
Примечание: нужно проявлять внимание при использовании этой формы PHP, чтобы не было противоречий с заменой переменных командной строки, выполняемой оболочкой.
Пример, выводящий ошибку разборщика:
$ php -r "$foo = get_defined_constants();" Command line code(1) : Parse error - parse error, unexpected '='Проблема здесь в том, что sh/bash выполняет замену переменной даже при использовании двойных кавычек ". Поскольку переменная $foo вряд ли определена, она ни во что не разворачивается, что в результате даёт код, передаваемый в PHP для выполнения, фактически прочитанный:
$ php -r " = get_defined_constants();"
| |