不能在exec函数php上添加双正斜杠

时间:2015-05-12 14:23:27

标签: php wmic

目前我在PHP中遇到这个问题,我试图创建一个简单的网页,在shell中执行一些代码并显示运行的进程 我试图执行的代码就是这个

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

在shell中它正确执行(Ubuntu 14.04 LTS),但在PHP中,这些双斜杠被视为注释,就像在这段代码中一样

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

但是,双正斜杠(//)正在评论代码的其余部分!

如何重写该代码,以便PHP将这些双斜杠解释为注释,但作为代码的一部分?

提前谢谢

1 个答案:

答案 0 :(得分:0)

您需要使用反斜杠char /转义斜杠\ char,因此您的新代码将是:

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

从PHP手册:

  

反斜杠字符有多种用途。首先,如果遵循它   通过非字母数字字符,它消除了任何特殊含义   那个角色可能有。这种反斜杠用作转义字符   适用于内部和外部字符类。

     

例如,如果要匹配“*”字符,则在其中写入“*”   模式。无论以下字符是否适用,这都适用   否则被解释为元字符,所以它总是安全的   在带有“\”的非字母数字前面指定它代表它   本身。特别是,如果你想匹配一个反斜杠,你写   “\”。