为什么php的shell_exec不能在这里工作?

时间:2015-05-07 04:20:53

标签: c# php command-line console shell-exec

我有一个php脚本和一个使用c#创建的exe文件。我想php执行该exe文件。我尝试使用shell_exec命令。但什么都没发生!然后我尝试了echo shell_exec("dir");,它通过显示信息来工作。

为什么不执行exe文件。几个月前我已经使用过它,它在xpdf,brc和opera上运行良好。

我尝试给出绝对路径,我尝试添加路径变量。但它不起作用。 有趣的是我的exe文件从命令行完美执行。我认为php有问题。

我正在使用Apache 2.4和PHP 5.6

PHP脚本:

<?php
echo shell_exec("Face_Trainer.exe");
?>

C#exe文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Face_Trainer
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Beep();

        }
    }
}

我需要这个shell_exec才能完成我的项目,其他一切都很好,就是这个功能!

1 个答案:

答案 0 :(得分:1)

解决方案:

您正在使用非交互式shell,这就是您没有听到哔哔声的原因。您可以通过编写文件来检查它,如果创建了文件,您的程序在当前设置中运行正常。

其他评论:

如果您真的尝试执行exe文件,则应使用正确的扩展名:

<?php
echo shell_exec("Face_Trainer.exe");
?>

由于这似乎是一个错字,这里有另一个提示:我会运行一个批处理文件,您可以在其中为您的应用程序设置环境。这是一个例子:

@echo off
set path=%path%;x:\your\path
cd x:\dir\of\exe
Face_Trainer.exe