2013-05-14 3 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

+0

@Passerby могут быть некоторые причины, такие как «слишком большой файл» или тайм-аут сценария, потому что там много строк. – BlitZ

+0

@CORRUPT Я только хотел увидеть, правильно ли функционирует 'cmdReadExcel.php'. Я сам использую технику фона, чтобы делать что-то тоже, и обработка ПП кажется прекрасной на первый взгляд. – Passerby

ответ

0

Вы могли бы инициировать выполнение сценария от клиента, а не сервера. Пример:

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

Тогда просто запросите эту страницу с помощью CURL или еще чего-нибудь. Этот подход более переносимый.