无法使用 popen 运行后台 PHP 脚本



我有一个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.

帮助吗?

我得到了解决方案:

我正在做的是在批处理中调用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];

捕捉参数

希望对大家有所帮助。

相关内容

  • 没有找到相关文章

最新更新