簡體   English   中英

無法使用Popen運行后台PHP腳本

[英]Can't Run a background PHP Script With Popen

我有一個需要在后台運行的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];

捕捉參數。

希望能對某人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM