Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将参数传递给正在运行的批处理文件_Php_Sockets_Batch File - Fatal编程技术网

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。