1

バックグラウンドでコードを実行したい..時間がかかる巨大なレポートをダウンロードしているときにこれが欲しい..ほとんどすべてのGoogleサイトを調べましたが、まだ答えを見つけることができません..実際に動かなくなって先に進むことができません..

xlsでレポートをダウンロードするために使用するコードmは

<?php

include '../dbConnect.php';
$from1='2013-06-01';
$to1='2013-07-01';
$today=date('Y-m-d H:i:s');
$fileName='Outbound_download'.$today.'.xls';
ignore_user_abort(true);
set_time_limit(0);

//echo 'Testing connection handling in PHP';


header("Content-type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment; filename=$fileName");


$flag = false;
$query="";
$query  = "SELECT pendingCustomer.ackNo AS RAF, pendingCustomer.serialNo AS Serial_No, pendingCustomer.phoneNo AS Phone,pendingCustomer.repairStatus as ArrivalStatus,tblRepairQueue.repairStatus as CurrentStatus, pendingCustomer.savedAt AS UpdateRecievedAt, pendingCustomer.updated as Updated, pendingCustomer.status as Status 
FROM pendingCustomer,tblRepairQueue
WHERE pendingCustomer.status!='' AND DATE(pendingCustomer.savedAt)  BETWEEN  '".$from1."' AND  '".$to1."' and pendingCustomer.ackNo=tblRepairQueue.ackNo";

$result = mysql_query($query) or die('Error, query failed');

 while($row =mysql_fetch_assoc($result)) {
    if(!$flag) {
      // display field/column names as first row
      echo implode("\t", array_keys($row)) ."\r\n";
      $flag = true;
    }
      echo implode("\t", array_values($row)) . "\r\n";
  }




?>

このExcelコードをバックグラウンドで実行したい. 任意の助けをいただければ幸いです

4

1 に答える 1

0

バックグラウンドで PHP ファイルを実行するには、コードを 1 つのファイルに入れ、PHP インタープリターを呼び出してバックグラウンドで実行する必要があります。*nix サーバーでは、exec( '/usr/bin/php -f path/to/your/script > /dev/null &' );. サーバー上の PHP インタープリターへのパスを確認してください/usr/bin/php。必要に応じて、ホスティング プロバイダーにお問い合わせください。Windows サーバーでは、pclose( popen( 'start /b C:\php\php.exe -f path\to\your\script' ) );(ここでも php.exe が にあると仮定してC:\php) を使用します。

ただし、バックグラウンド プロセスは単独で実行されるため、ユーザーのブラウザに何も出力できません。必要なことを達成する 1 つの方法は、PHP の結果をファイルに出力し、ジョブが完了したときに何らかのフラグを設定し、別のスクリプトで結果の準備ができているかどうかを確認し、ユーザーにファイルへのリンクを提供することです。

于 2013-11-11T06:27:39.873 に答える