wmic — не может добавить двойную косую черту в exec-функции Stack Overflow

В настоящее время у меня есть эта проблема в PHP, я пытаюсь сделать простую веб-страницу, которая выполняет некоторый код в оболочке и показывает запущенный процесс
код, который я пытаюсь выполнить это

wmic -U User%Passwd //192.168.1.3 "select Caption from Win32_Process"

В оболочке он выполняется правильно (Ubuntu 14.04 LTS), но в PHP эти двойные слеши воспринимаются как комментарий, как в этом коде

exec('wmic -U User%Passwd //'.$IP.' "select Caption from Win32_Process"',$exit);

Однако двойная косая черта (//) комментирует остальную часть кода!

Как я могу переписать этот код, чтобы PHP интерпретировал эти двойные слэши не как комментарий, а как часть кода?

заранее спасибо

-1

Решение

Вам нужно убежать от слеша / символ с обратным слешем \поэтому ваш новый код будет:

exec('wmic -U User%Passwd \/\/'.$IP.' "select Caption from Win32_Process"',$exit);

Из руководства по PHP:

Символ обратной косой черты имеет несколько применений. Во-первых, если это следует
не буквенно-цифровым символом, он убирает любое особое значение
этот персонаж может иметь. Это использование обратной косой черты как побег
применяется как внутри, так и вне классов персонажей.

Например, если вы хотите сопоставить символ «*», вы пишете «*» в
шаблон. Это применимо независимо от того, будет ли следующий символ
в противном случае интерпретируется как метасимвол, поэтому всегда безопасно
перед не алфавитно-цифровым символом «\» указывается, что он обозначает
сам. В частности, если вы хотите сопоставить обратную косую черту, вы пишете
«\».

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]