2013-05-14 46 views
1

當執行PHP文件作爲後臺進程時,我遇到了問題。 我有兩個PHP文件如下:如何運行php作爲後臺進程

的index.php

<?php 
    $cmd = "php cmdReadReport.php"; 
    if (substr(php_uname(), 0, 7) == "Windows"){ 
     pclose(popen("start /B ". $cmd, "r")); 
    } 
    else { 
     exec($cmd . " > /dev/null &"); 
    } 
?> 

cmdReadExcel.php

<?php 
    $reportname = "./report/lw321.xls"; 
    $thereport = new Report(); 
    $thereport->readReport($reportname) 
?> 

我的目標是運行Report.readReport作爲後臺進程。 readReport函數是讀取Excel文件並將其行保存到數據庫的函數。

我按照教程,但沒有結果/沒有行插入。代碼中有什麼錯誤?

問候,

+1

如果在「前景」中運行它會發生什麼? – Passerby 2013-05-14 03:48:43

+0

@Passerby可能有一些原因,比如「文件太大」或腳本超時,因爲那裏有很多行。 – BlitZ 2013-05-14 03:52:01

+0

@CORRUPT我只是想看看'cmdReadExcel.php'實際上是否正常工作。我自己也使用背景技術來做事情,乍一看OP的處理似乎很好。 – Passerby 2013-05-14 03:52:36

回答

0

你可以從你的客戶,而不是服務器啓動腳本執行。像這樣:

www.example.com/scripts/cmdReadReport.php?keypass=Giw3m4d9BaJO0ua0WFtG 

然後,只需要用CURL或其他東西來請求這個頁面。這種方法更便於攜帶。

相關問題