在php网页和后台脚本之间传递变量
我想在Windows的后台运行一个php脚本。在php网页和后台脚本之间传递变量
林寻找一种方式来传递他们之间的变量。基本上那是什么即时试图完成:
PHP页面:
session_start();
$_SESSION['abc'] = 1 ;
$cmd = "c:\wamp\bin\php\php5.5.12\php -f c:\wamp\www\FinalProject\newEmptyPHP.php" ;
pclose(popen("start /B ".$cmd, 'r'));
while ($_SESSION['abc'] == 1)
{
sleep(1) ;
}
echo 'Done';
背景脚本:
session_start();
$_SESSION['abc'] = 0 ;
即时通信开放给任何建议。
你应该执行这个传递VAR作为控制台调用的参数:
session_start();
$_SESSION['abc'] = 1 ;
$cmd = "c:\wamp\bin\php\php5.5.12\php -f c:\wamp\www\FinalProject\newEmptyPHP.php " . $_SESSION['abc'] ;
/** ... */
之后,你将能够使用$ argv的VAR(http://php.net/manual/en/reserved.variables.argv.php)
从newEmptyPHP.php得到论证我认为你永远不会以这种方式更新会话,因为: 1)PHP在执行期间没有在$ _SESSION中监听外部更改。如果可能的话,这将是一个非常困难的维护和调试。 2)控制台中的脚本不会使用会话,因为会话只能由打开它的客户端访问(请参阅http://www.w3schools.com/php/php_sessions.asp) 但是...为什么需要使用popen从PHP调用PHP脚本?它会很慢。我建议在你的应用程序中构建你需要使用newEmptyPHP.php的功能。
基本上我的目标是在后台运行一个exe文件,并在完成后收到一个信号。 – 2015-03-31 20:45:17
你可以通过阅读popen [link](http://php.net/manual/en/function.popen.php)返回的流来完成。请注意后台进程足够快:它会锁定PHP执行。根据你在后台需要做什么,可能你应该寻找一种不同于PHP的解决方案(NodeJS可能是一个不错的选择)。 – gotardo 2015-04-02 10:23:55
Windows是一个操作系统,它更可能是你在浏览器中使用PHP? – 2015-03-31 19:54:09
看看PHP套接字编程 – aergistal 2015-03-31 19:58:43