【发布时间】:2015-11-20 23:28:42
【问题描述】:
我有一个 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。
帮助?
【问题讨论】:
-
你不能在网络上运行脚本吗?例如。
file_get_contents("http://www.link.to.script.com/import.php?params") -
在cmd中运行该命令是否有效?尝试打开错误报告,看看它是否返回任何错误。
-
@AndersAndersen 我正在尝试以这种方式运行脚本
D:/server/php/php-win.exe "D:/path/to/progress_import.php?files=9&id=2",我在 CMD 中没有收到任何错误,但它也不起作用。使用file_get_contentsworks,但不要在后台运行,这就是脚本的全部目的。 -
在 cmd 中使用 \ 而不是 / 也不会改变任何东西。
-
@MetalSonic 尝试查看,起初用户在此页面上贡献了php.net/manual/en/function.exec.php#86329 这是“Arno van den Brink”的一个也许你需要在你的命令中删除这个“2>nul >nul”
标签: php background-process popen pclose