0

我有一个需要在后台运行的 PHP 代码(没有 cronjobs 或类似选项),它是完整的,但我不能在后台调用它。我正在尝试以下操作:

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

但它永远不会运行。如果我手动运行import.php ,它可以正常工作。

PS:我无法更改import.php。

帮助?

4

1 回答 1

0

我得到了解决方案:

我正在做的是在批处理中调用 PHP 并使用 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"));

progress_import.php我正在使用的内部:

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

捕捉参数。

希望对某人有所帮助。

于 2015-08-26T20:32:21.393 回答