반응형
PHP CLI는 사용자로부터 입력을 받은 다음 변수에 덤프하는 것이 가능합니까?
php cli를 사용하여 사용자로부터 입력을 받은 다음 입력을 변수에 덤프하고 스크립트가 진행되는 것이 가능합니까?
마치 c++처럼.cin기능?
만약 그렇다면 그것이 가능합니까? 아마도 php 뿐만 아니라 아마도 몇몇 리눅스 명령들로?
php CLI 모드에서 표준 입력에서 행을 읽으려면 다음을 수행합니다.
$fin = fopen ("php://stdin","r");
$line = fgets($fin);
PHP의 이전 버전에서STDIN상수가 작동할 수도 있습니다.
$line = fgets(STDIN);
입력에서 모든 내용을 읽으려면 다음을 사용합니다.
file_get_contents('php://input');
이 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";
?>
이 예에서 저는 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";
?>
또한 최대 차터를 설정할 수 있습니다.이것은 제 개인적인 예입니다.이것을 당신의 코드로 사용하는 것을 제안하겠습니다.또한 "php://stdin"보다는 직접 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";
?>
마찬가지로 파이썬과 같은 함수를 만들 수 있습니다.
$line = input("Please put in a number: ");
if ($line === 20){
echo true;
} else {
echo false;
}
function input(string $prompt = null): string
{
echo $prompt;
$handle = fopen ("php://stdin","r");
$output = fgets ($handle);
return trim ($output);
}
언급URL : https://stackoverflow.com/questions/6543841/php-cli-getting-input-from-user-and-then-dumping-into-variable-possible
반응형
'codememo' 카테고리의 다른 글
| Yii 2를 사용하여 Ajax 호출에서 잘못된 요청(#400)을 받는 중 (0) | 2023.08.16 |
|---|---|
| github의 두 분기 간 단일 파일에 대한 디프를 생성하려면 어떻게 해야 합니까? (0) | 2023.08.16 |
| mysql/messagadbrict_trans_table 모드입니다.활성화하기 전에 로그 (0) | 2023.08.16 |
| Swift의 UIAlert Controller에 TextField를 추가하는 방법 (0) | 2023.08.16 |
| Spring Framework를 사용하여 OPTIONS 요청에 대한 CORS 사용 (0) | 2023.08.16 |