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 № 1Ich 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.