我有一个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];
捕捉参数
希望对大家有所帮助。