如何同时运行两个php文件?一个在背景中,另一个在前景中

时间:2015-12-25 12:13:22

标签: php linux background-process

我在SO中搜索了很多关于后台运行中的php文件的Q / A. 但最终问我自己。

我拥有什么:我有三个php文件

  1. sms.php :它是主要文件,包含一些来自元素(一个移动电话号码文本框(sim-no)和一个提交按钮)和一个包含另一个php的require_once档案send_sms.php
  2. send_sms.php :它实际上是向该移动电话号码发送了一些消息,在发送消息之间,通过fxn(sendsms)延迟了30秒,该消息存储在{{ 1}}。
  3. sss.php :它包含fxn(sss.php),其中包含三个参数:sendsmscountrycodemobilenumber
  4. 我想要什么:我想运行在后台发送邮件的php脚本。那么,当我进入一个手机没有。然后点击提交按钮,它将开始在后台向该号码发送消息,并允许我输入另一个手机号码,依此类推。

    我已经尝试了很多东西,因为你可以在代码中看到一些但却无法真正做到。

    代码

    sms.php

    message

    send_sms.php

    <!DOCTYPE html>
    <body>
    <center>
    <div id="login-form">
    <form action="<?php $_PHP_SELF ?>" method="POST">
    <table align="center" width="30%" border="0">
    <tr>
    <td> Sim Numbers : </td>
    <td> <input type = " text"   name="sim-no" id = "sim-no" placeholder = "     Please enter Mobile Number." /></td>
    </tr>
    <tr>
    <td><input type="submit" name="sms"   /></td>
    </tr>
    </table>
    </form>
    </div>
    </center>
    </body>
    </html>
    
    <?php
    session_start();
    require_once 'send_sms.php';
    $_SESSION['sim-no'] = $_POST["sim-no"];
    $descriptorspec = array(
     array('pipe', 'r'),               // stdin
    array('file', '$_POST["sim-no"].txt', 'a'), // stdout
    array('pipe', 'w'),               // stderr
    );
    if(($_SESSION['sim-no'] > 1000000000) && ($_SESSION['sim-no'] < 9999999999))
    {
    $proc = proc_open('php send_sms.php &', $descriptorspec, $pipes);
    }
    else
    {
    echo "Invalid Number !! " ; 
    }
    ?>
    

    sss.php

    包含功能

    <?php 
    session_start();
    $sim-no = $_SESSION['sim-no'];
    ignore_user_abort(1)
    require_once'sss.php' ;
    $countrycode=91;
    echo $sim-no  ;
    $mobilenumber= $sim-no ;
    $message="begin030815";
    $sms_status=sendsms($countrycode,$mobilenumber,$message);
    sleep(30);
    $message="begin123456";
    $sms_status=sendsms($countrycode,$mobilenumber,$message);
    sleep(30);
    $message="password123456+030815";
    $sms_status=sendsms($countrycode,$mobilenumber,$message);
    sleep(30);
    $message="itv030815+60+3600";
    $sms_status=sendsms($countrycode,$mobilenumber,$message);
    sleep(30);
    $message="tracker030815";
    $sms_status=sendsms($countrycode,$mobilenumber,$message);
    sleep(30);
    $message="lowbattery030815+1";
    $sms_status=sendsms($countrycode,$mobilenumber,$message);
    sleep(30);
    $message="extpower030815+1";
    $sms_status=sendsms($countrycode,$mobilenumber,$message);
    sleep(30);
    $message="adminip030815+110.173.191.194+6000";
    $sms_status=sendsms($countrycode,$mobilenumber,$message);
    sleep(30);
    $message="gprs030815+1";
    $sms_status=sendsms($countrycode,$mobilenumber,$message);
    sleep(30);
    $message="apn030815+rcomnet";
    $sms_status=sendsms($countrycode,$mobilenumber,$message);
    echo "Messages Sent !! " ;
    ?>
    

1 个答案:

答案 0 :(得分:1)

您可以使用以下概念:

当您提交表单并将数据发送到send_sms.php文件时,请获取数据并关闭与该文件的连接。

如下所示:

scanf()