/ / Nie można uruchomić skryptu PHP w tle z Popenem - php, proces w tle, popen, pclose

Nie można uruchomić tła Skrypt PHP z Popenem - php, proces w tle, popen, pclose

Mam kod PHP, który musi działać w tle (bez cronjobs lub podobnych opcji), który jest kompletny, ale po prostu nie mogę go wywołać w tle. Próbuję:

$files = $_GET["files"];
$id = $_GET["id"];

pclose(popen("start /B D:\server\php\php.exe D:\server\www\whatever\importat\import.php?files=".$files."&id=".$id." 2>nul >nul", "r"));

Ale „nigdy nie działa. Jeśli pójdę i ucieknę import.php ręcznie działa bezbłędnie.

PS: Nie mogę zmienić import.php.

Wsparcie?

Odpowiedzi:

0 dla odpowiedzi № 1

Mam rozwiązanie:

To, co robię, to nazywanie PHP wewnątrz partii i uruchamianie go za pomocą popen:

$phpBatch = "progress_import_".$idImport.".bat";
$myPhp = fopen($phpBatch, "w") or die("Error opening file!");
$batchContent .= "@echo OFF n";
$batchContent .= ""D:\path\to\php.exe" D:\path\to\progress_import.php ".$idImport." ".$_SESSION["numberFiles"]." ";
pclose(popen("start /B D:\path\to\".$phpBatch."", "r"));

I wewnątrz progress_import.php używam:

$id = $argv[1];
$numberFiles = $argv[2];

Aby złapać parametry.

Mam nadzieję, że pomaga komuś.