2013-05-14 3 views
1

PHP 파일을 백그라운드 프로세스로 실행할 때 문제가 있습니다. 나는 다음과 같은 두 개의 PHP 파일이 있습니다백그라운드 프로세스로 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을 실행하는 것입니다

의 index.php를. readReport 함수는 Excel 파일을 읽고 해당 행을 데이터베이스에 저장하는 함수입니다.

나는 튜토리얼을 따라 갔지만 아무 결과도 삽입되지 않았다. 코드에 이상이 있습니까? 당신은 클라이언트가 아닌 서버에서 스크립트 실행을 시작할 수

+1

"전경"에서 실행하면 어떻게됩니까? – Passerby

+0

@Passerby 거기에 많은 행이 있기 때문에 "파일이 너무 큽니다"또는 스크립트 시간 초과와 같은 몇 가지 이유가있을 수 있습니다. – BlitZ

+0

@CORRUPT'cmdReadExcel.php'가 실제로 제대로 작동하는지 확인하려고했습니다. 나도 나 자신도 배경 기술을 사용하여 일을하고, OP의 처리는 언뜻보기에는 괜찮아 보인다. – Passerby

답변

0

감사합니다. 이와 같이 :

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

그런 다음이 페이지를 CURL 또는 다른 것으로 요청하십시오. 이 접근법은 더 이식성이 있습니다.