我想在后台运行代码..我想下载大量的报告,这需要花费大量的时间..我已经通过几乎所有的谷歌网站,但仍然无法找到答案..米其实卡住不能进一步..
用于在xls中下载报告的代码是
<?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代码在后台运行。任何帮助将不胜感激
答案 0 :(得分:0)
要在后台运行PHP文件,您必须将代码放在一个文件中,并调用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
中)。
然而,后台进程无法向用户的浏览器输出任何内容,因为它自己运行。实现所需要的一种方法是将PHP结果输出到文件中,在作业完成时设置一些标志,在另一个脚本中检查结果是否准备就绪,并为用户提供文件链接。