使用PHP将数据传递到可执行文件

时间:2013-06-18 22:52:28

标签: c# php

这是我将数据传递到C#exe文件的PHP代码。

<?
    shell_exec("p3.exe --tRyMe");
?>

我想要的是,我将一个字符串发布到p3.exe文件,该exe文件将“tRyme”字符串打印到屏幕上。

using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string a;
            Console.Write("Please enter a string : ");
            a = Console.ReadLine();
            Console.WriteLine("You have entered: {0}", a);
            Console.ReadKey();
        }
    }
}

这是我的C#代码。

我已经尝试了“--tRyMe”,“ - tyyMe”,“tRyMe”等,但是,此代码仅在屏幕上打印“请输入字符串”。

我想要的是看输出如:

  

您已输入:tRyMe

你可以帮我这么做吗? 祝福。

3 个答案:

答案 0 :(得分:1)

我不能讨论PHP代码,但是在c#方面,你需要检查从命令行传递给你的程序的参数数量,如果有参数,不要求输入,而是打印收到的论点

    static void Main(string[] args)
    {
        string a;
        if(args.Length == 0)
        {
             Console.Write("Please enter a string : ");
             a = Console.ReadLine();
        }
        else
             a = args[0];

        Console.WriteLine("You have entered: {0}", a);
        Console.ReadKey();
    }

答案 1 :(得分:0)

没有尝试过,管道是否有效?

<?php
    shell_exec("echo tRyMe | p3.exe");
?>

答案 2 :(得分:0)

您只能运行应用程序并打印输出,但无法与应用程序交互 - Console.ReadLine()需要输入... 所以你不能使用它(也影响Console.ReadKey())

试试这个:

static void Main(string[] args)
{
    string a;
    if(args.Length == 0)
         a = "No arg is given";
    else
         a = args[0];

    Console.WriteLine("You have entered: {0}", a);
}