繁体   English   中英

在PHP网页和后台脚本之间传递变量

[英]Passing variable between php web page and a background script

我试图在Windows的后台运行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中构建您需要使用的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM