Я пытаюсь запустить скрипт 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'] ;
/** ... */
После этого вы сможете получить аргумент из 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 внутри вашего приложения.
Других решений пока нет …