session — передача переменной между веб-страницей 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 ;

Я открыт для любых предложений.

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'] ;
/** ... */

После этого вы сможете получить аргумент из newEmptyPHP.php, используя $ argv var (http://php.net/manual/en/reserved.variables.argv.php)

Я думаю, что вы никогда не будете обновлять свою сессию таким образом, потому что:
1) PHP не прослушивает внешние изменения в $ _SESSION во время выполнения. Если бы это было возможно, было бы очень сложно поддерживать и отлаживать. 2) Сценарий в консоли не будет использовать сеансы, так как сеанс доступен только клиенту, который его открыл (см. http://www.w3schools.com/php/php_sessions.asp)
Но … Зачем вам нужно вызывать PHP-скрипт из PHP, используя popen? Это будет очень медленно. Я рекомендую создать функцию, которую вам нужно использовать, из newEmptyPHP.php внутри вашего приложения.

0

Другие решения

Других решений пока нет …