Php 将参数传递给正在运行的批处理文件
我将运行批处理文件作为套接字侦听器,它将从连接的客户端接收数据。我想通过网页向连接的客户机发送命令,但我遇到了问题,或者我不知道如何将参数传递给正在运行的批处理文件侦听器 我在向正在运行的批处理文件的客户端发送命令时尝试了此代码段Php 将参数传递给正在运行的批处理文件,php,sockets,batch-file,Php,Sockets,Batch File,我将运行批处理文件作为套接字侦听器,它将从连接的客户端接收数据。我想通过网页向连接的客户机发送命令,但我遇到了问题,或者我不知道如何将参数传递给正在运行的批处理文件侦听器 我在向正在运行的批处理文件的客户端发送命令时尝试了此代码段 if(isset($_GET['comparam'])) { $mycommand = $_GET['comparam']; foreach ($clients as $send_sock) { socket_write($send_sock,
if(isset($_GET['comparam'])) {
$mycommand = $_GET['comparam'];
foreach ($clients as $send_sock) {
socket_write($send_sock, $mycommand);
}
}
但是什么也没发生,我的代码不起作用
我很感激有人能在这个问题上帮助我。您正在从bacth文件运行php,所以它是php CLI
$\u GET
用于web版本,但命令行中不存在这种概念
传递参数的方式如下所示:
C:\some\path\yourScript.php comparam
然后从脚本中读取值,如下所示:
if(isset($argv[1])){
$mycommand = $argv[1];
foreach ($clients as $send_sock) {
socket_write($send_sock, $mycommand);
}
}
批处理文件本身无法侦听套接字。如果您有一个运行其他内容的批处理文件,而其他内容侦听套接字,则批处理文件是不相关的。@jon,我的批处理文件正在调用my listener.php,此侦听器就是在中接收数据的侦听器socket@jon,我该怎么做才能将我的命令发送到连接的客户端?谢谢你的回复。什么是$argv?这是指compariam吗?我能问一下如何执行这个C:\some\path\mylistener.php compariam吗?mylistener.php是我批处理文件中的一个吗?你必须将php放在
php C:\some\path\yourScript.php前面comparam
@jemz,感谢您的回复,但我不想在cmd中手动执行此操作,我想动态执行此操作,当我在web中按下一个按钮时,它将启动cmd以执行comparam。