从php调用matlab exe不能正常工作

时间:2012-01-09 10:52:46

标签: php matlab

我已将matlab脚本编译成独立的win应用程序和控制台应用程序。可以使用image_process pic1.png从命令行调用该脚本。 exe运行并生成一个字符串作为结果。 不,我想在php中部署它。我在我的主网站目录中添加了一个名为uploads的文件夹。我需要运行php来调用matlab exe来运行此文件夹中的图像。

现在我转到我的PHP脚本。我定义了我的上传目录:

define("UPLOAD_DIRECTORY","./uploads"); // defines the uploads directory

然后我将路径添加到我的图像处理器: 定义( “IMAGE_PROCESSORE”,目录名(目录名(文件)) “/ image_process.exe”);

最后我将我的流程配置为:

case "process":
    $res=array();
    $pic=isset($_REQUEST["pic"])?trim($_REQUEST["pic"]):"";
    if($pic==""){
        echo "No picture name is passed";
        exit();
    }
    exec(IMAGE_PROCESSORE.' "'.realpath(UPLOAD_DIRECTORY).'" '.$pic,$res);
    //exec(IMAGE_PROCESSORE." ".$pic,$res); // this one if I define the image_process.exe inside the uploads folder
    echo"<pre>";
    print_r($res);
    echo"</pre>";
break; 

所以当我打电话给我的php时:

localhost/mysitename/phpresponse.php?act=process&pic=pic1.png

我没有输出,但如果我运行

localhost/mysitename/phpresponse.php?act=process&pic=c:\xampp\htdocs\mysitename\uploads\pic1.png

matlab编译的文件将运行并执行

我真的很困惑,我确实尝试过很多东西,但没有运气......

2 个答案:

答案 0 :(得分:1)

它看起来与您的Last Question有关,所以我会在这里回答。
首先,在编译的Matlab EXE 中,参数通过命令行逐个传递。

我首先在命令行中运行 PHP 之外的 EXE 文件,并在脚本中提供参数。如果有效,则问题出在 PHP 脚本中。如果没有再次检查Matlab代码。

答案 1 :(得分:0)

我确实找到了解决方案。我已经让脚本调用了2个参数然后使用exec而不是使用passthru执行编译的matlab脚本。我不知道为什么它确实有效,但至少它确实如此: - )