PHP cli получает вход от пользователя, а затем сбрасывается в переменную?

Можно ли получить вход от пользователя с помощью php cli, а затем выгрузить вход в переменную, а затем запустить скрипт.

Как функция c ++ cin ?

Возможно ли, если да, то как? Может быть, не только php, но, возможно, с некоторыми командами linux?

благодаря

Solutions Collecting From Web of "PHP cli получает вход от пользователя, а затем сбрасывается в переменную?"

Взгляните на эту страницу руководства PHP http://php.net/manual/en/features.commandline.php

в частности

 <?php echo "Are you sure you want to do this? Type 'yes' to continue: "; $handle = fopen ("php://stdin","r"); $line = fgets($handle); if(trim($line) != 'yes'){ echo "ABORTING!\n"; exit; } echo "\n"; echo "Thank you, continuing...\n"; ?> 

Вы можете просто сделать:

 $line = fgets(STDIN); 

для чтения строки со стандартного ввода в режиме CLI.

В этом примере я расширяю пример Devjar. Кредиты для него, например, кода. Последний пример кода прост и безопасен, на мой взгляд.

Когда вы используете его код:

 <?php echo "Are you sure you want to do this? Type 'yes' to continue: "; $handle = fopen ("php://stdin","r"); $line = fgets($handle); if(trim($line) != 'yes'){ echo "ABORTING!\n"; exit; } echo "\n"; echo "Thank you, continuing...\n"; ?> 

Вы должны отметить, что режим stdin не является бинарным. Вы должны добавить «b» в свой режим и использовать следующий код:

 <?php echo "Are you sure you want to do this? Type 'yes' to continue: "; $handle = fopen ("php://stdin","rb"); // <-- Add "b" Here for Binary-Safe $line = fgets($handle); if(trim($line) != 'yes'){ echo "ABORTING!\n"; exit; } echo "\n"; echo "Thank you, continuing...\n"; ?> 

Также вы можете установить максимальные чартеры. Это мой личный пример. Я предлагаю использовать это как ваш код. Также рекомендуется использовать напрямую STDIN, чем «php: // stdin».

 <?php /* Define STDIN in case if it is not already defined by PHP for some reason */ if(!defined("STDIN")) { define("STDIN", fopen('php://stdin','rb')) } echo "Hello! What is your name (enter below):\n"; $strName = fread(STDIN, 80); // Read up to 80 characters or a newline echo 'Hello ' , $strName , "\n"; ?>