我正在使用php构建一个网站。我需要将一个变量发送到php站点的命令行可执行文件,运行可执行文件,然后读取响应。
我相信我没有正确地将参数发送给可执行文件。
我的PHP代码:
using System;
namespace PHP_Test
{
class Hello
{
static void Main(string[] args)
{
if (args.Length == 0)
{
Console.WriteLine("Please enter a numeric argument.");
}
else
{
Console.WriteLine("Hello World!");
}
}
}
}
我的c#可执行代码
for (var i = 0; i < statusAll.length; i++) {
cont.append(rows);
$('.row:nth-last-child(1) .col-md-4').append('<img class="img-responsive img-circle" src="' + statusAll[i].stream.logo + '">');
$('.row:nth-last-child(1) .col-md-8').append('<p>' + statusAll[i].stream.display_name + '</p>');
}
如您所见,我的可执行文件目前只是设置为根据是否提供参数提供响应。当我没有从php发送参数时,我得到正确的响应(&#34;请输入数字参数。&#34;)。但是,每当我试图提出一个论点时,我都没有得到任何反馈,这让我相信我做错了。
感谢您的任何帮助。
答案 0 :(得分:0)
如果单引号变量未被其值替换,则应使用双引号:
编辑:并在命令末尾添加2>&1
以获取STDERR
$answer = shell_exec("D:\WebPages\PHP_Test.exe $a 2>&1");
答案 1 :(得分:0)
我找到了问题的部分答案。当包含执行文件的路径时,由于某种原因它不会让我发布任何参数。我将执行文件放在目录文件夹中并调用它,没有任何路径通向可执行文件,然后允许参数。