使用PHP从命令行读取/写入数据

时间:2010-07-30 15:55:29

标签: php unix sockets analyzer spectral

我有一台服务器(debian lenny),频谱分析仪,我从Steve Sharples's网站下载了源代码集。有了这些。我可以连接到频谱分析仪 - 类型命令并获得响应。

例如:

my-atom:~/vxi11# ./vxi11_cmd 135.123.106.59
Input command or query ('q' to exit): *IDN?

我得到:Rohde&Schwarz,FSV-7,102004/007,1.50 SP1

我能连接到此服务器,编写命令并使用PHP读取响应吗?我在考虑插座,但我不确定是否是最好的选择。

非常感谢任何帮助。

谢谢, 彼得

3 个答案:

答案 0 :(得分:0)

您可以使用execshell_execsystemproc_open执行外部程序。

我建议使用proc_open,它允许你为stdin,stdout和stderr设置管道。

查看proc_open链接。

答案 1 :(得分:0)

你也可以这样做:

$result = `SOME_COMMAND_HERE`;

答案 2 :(得分:0)

您可以将shell_exec与netcat结合使用:

<?php
$output = shell_exec('echo "TRAC? TRACE1" | netcat -q 1 135.123.106.59 5025');
echo "<pre>$output</pre>";
?>

请注意-q 1选项,这会导致netcat等待1秒钟以获得答案。 “set”命令不需要等待时间。此外,*IDN?不需要等待时间but many other query commands do

使用netcat进行此连接危险地靠近裸机。您可能希望编写一个捕获常见错误的shell脚本。然后,您可以使用shell_exec调用该脚本。

当然,最好的方法是采用Steve Sharples free library并修改他的cmd示例以满足您自己的需求。