我将使用exec PHP函数来运行命令并获得响应,如下所示:
$stream = ssh2_exec($conn, 'php -v');
stream_set_blocking($stream, true);
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
$data= stream_get_contents($stream_out);
我希望返回的数据采用表格格式,例如:
所以我有兴趣获得Userid
值。最好的方法是什么?也许链接到可能使用的PHP函数?
stackoverflow上的大多数帖子都提示substr
,但我不认为我可以使用它,因为该表可能更大或更小。
答案 0 :(得分:1)
考虑到您的输入看起来像
--------------Table1-----------
fname | lname | userid
-----------------------------------
jakson jack 3
nils smith 44
您可以使用preg_match_all
的简单正则表达式:
(?m)\d+(?=\s*$)
REGEX EXPLANATION :
(?m)
强制$
在一行的末尾匹配,而不是在整个输入字符串的末尾匹配\d+
将匹配0到9之间的一个或多个数字,因此将匹配ID (?=\s*$)
- 前瞻性检查可选空格(\s*
\s
代表\r\n\f\t
和空格,而*
是量词,意为0或更多出现的前一个子模式)和行结束($
)。请注意,前瞻不会消耗文本,并且它们永远不会成为匹配项。在PHP中,您需要声明带有分隔符的正则表达式,例如
$pattern = "#\d+(?=\s*$)#m";