/ / Kann kein Hintergrund-PHP-Skript mit Popen ausführen - PHP, Hintergrundprozess, Popen, Pclose

Kann kein Hintergrund-PHP-Skript mit Popen ausführen - PHP, Hintergrundprozess, Popen, Pclose

Ich habe einen PHP-Code, der im Hintergrund laufen muss (keine Cronjobs oder ähnliche Optionen), aber er kann nicht im Hintergrund aufgerufen werden. Ich versuche Folgendes:

$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"));

Aber es "läuft nie" import.php manuell funktioniert es ohne ausfall.

PS: Ich kann die import.php nicht ändern.

Hilfe?

Antworten:

0 für die Antwort № 1

Ich habe die lösung:

Was ich mache, ist das PHP in einem Batch aufzurufen und es mit popen zu starten:

$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"));

Und in der progress_import.php Ich benutze:

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

Um die Parameter zu erfassen.

Hoffe das hilft jemandem.