如何使用php_exec执行多个语句?

时间:2015-06-07 14:40:20

标签: php child-process

我有一个带有相同图像的轮播,当用户点击一个时,我会显示一个带有电子邮件和密码的表单。当通过AJAX发送提交操作时,我将图像ID,电子邮件和密码传递给PHP回调。 在我的PHP中验证凭据后,我调用了node.js脚本,但我每次只能执行一个node.js脚本。

有没有办法执行许多node.js,每个node.js具有相同的id映像名称,并且使用php_exec执行不同的电子邮件和密码?

My Carousel code:
<div class="col-sm-12">
    <div id="owl_carousel" class="owl-carousel owl-theme" style="opacity: 1; display: block;">

    <div class="owl-wrapper-outer"><div class="owl-wrapper" style="width: 7296px; left: 0px; display: block;"><div class="owl-item" style="width: 228px;"><div class="item">
                                <img role="button" tabindex="-1" data-trigger="hover" data-content="lollipop" data-placement="bottom" data-toggle="popover" data-container="body" alt="lollipop" id="lollipop" style="width: 170px; height: 170px;" src="img/clients/lollipop.png" data-original-title="" title="">
</div></div>
</div>

这是我的PHP代码:

My PHP Code

<?php 

class validateForm {

    function formValidate() {


        // Informations passes from form
        $username = trim($_POST['username']);
        $password = trim($_POST['password']);
        $filename = trim($_POST['file']);
        $retorno = array();

        // CasperJS call
        $nodejs_run = "node";
        $script = "/usr/share/node/parser.js";

        // Check if POST is null
        if ( (empty($username) &&  empty($password)) || ($username == null || $password == null) ) {
            $retorno['error'] = "Fill the form!"; 
            echo json_encode($retorno);
        } else {

            // Execute to CasperJS via asynchronous process
            try {
                exec("{$nodejs_run} {$script} {$username} {$password} {$filename} 2>&1", $output,$retval);
            } catch (Exception $e) {
                $retorno['failure'] = "The request failure!";
            }

            if (($retval) == '0'){
                $retorno['success'] = $output;
                echo json_encode($retorno);
            } else {
                $retorno['error'] = $output;
                echo json_encode($retorno);
            }

        } // end of if block

        return false;

    } // end function

} // end class

// Call function
$instValidadeForm = new validateForm; //create instance of class
echo $instValidadeForm->formValidate(); // access method of class

?>

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

当您使用exec()时,您可以使用&amp;&amp;

分隔多个命令

例如:

exec("$command1 && $command2 && $command3", $output, $retval);

在这种情况下,$ command2仅在$ command1成功时执行,$ command3仅在$ command2成功时执行。 $ retval将保存最后一个要执行的命令的返回状态。