【发布时间】:2011-07-16 22:03:51
【问题描述】:
我正在为我的用户制作一个功能,他们可以上传大型 XML 文件以与我的数据库同步。
当用户将文件上传到upload.php时,我想用process.php开始在后台处理数据,最好是从shell命令,并将用户重定向到status.php,这显示了同步。
我需要在执行 process.php 脚本时将一些变量传递给它,至少一个带有用户 ID 的变量并将其他变量放入一个文本文件中,(可能更喜欢这个,所以我不必放入exec() 命令中有很多数据。)或用户 ID 和一堆 $_POST 变量。
我想到的一个解决方案是这样执行 PHP 脚本:
exec("php -f ./process.php > /dev/null 2>/dev/null &");
这允许我锁定 process.php 与 http 访问,这很好,因为它是一个进程获取脚本。我在这里唯一需要做的就是以某种方式传递一个变量,但我不知道该怎么做。
所以我的主要问题是:
如何在上述解决方案中传递变量?
或者你们有更好的解决方案吗?可能是我不必通过exec() 的地方?请记住,我不希望用户等待脚本执行,我需要传递至少一个变量。
更新:为了将来参考,请记住在通过exec() 或类似函数传递参数时使用escapeshellarg()。
【问题讨论】: