繁体   English   中英

为什么PHP的shell_exec无法在这里使用?

[英]Why doesn't shell_exec of php work with here?

我有一个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来完成我的项目,其他一切都很好,仅此功能!

解:

您使用的是非交互式外壳,这就是为什么您听不到蜂鸣声的原因。 您可以通过编写文件来检查它,如果创建了文件,则程序在当前设置中可以正常运行。


其他说明:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM