mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Sunday, June 03, 2007

PHP CLI, Y/N, Yes/No/Cancel(예,아니오,취소) 키보드 입력 받기; getc, Get A Key


키보드로부터 딱 1글자만 입력받는 예제입니다. 아래 예제에서는 Yes/No/Cancel 을 y,n,c 한 글자만 입력받아 처리합니다. 위험한 작업에 앞서 사용자로부터 선택 사항을 입력 받거나 허락을 받는 용도입니다. C언어의 getch() 함수에 해당하는 함수가 없어서, 아래와 같이 직접 만들어 주었습니다. 아래의 getch() 함수는 편의상, 모든 글자를 소문자로 변환하여 반환합니다. 그런데 Enter키를 꼭 쳐주어야 한다는 불편함이 있습니다. 이것은 해결할 방법이 없더군요.

사용자가 엉뚱한 키를 입력했을 때에는 다시 입력받습니다.

getch: 사용자로부터, 알파벳 한 글자만 입력 받기 예제


소스 파일명: getch.php
<?php


print "예/아니오/취소 선택 (Y/N/C) ? ";


for (;;) {
  $c = getch();

  if ($c == 'y') { print "YES\n"; break; }
  if ($c == 'n') { print "NO\n"; break; }
  if ($c == 'c') { print "CANCEL\n"; break; }
}



// 키보드로부터 직접, 영문 한 글자만 입력받는 함수
function getch() {
  $fp = fopen("con", "rb");
  $c = fread($fp, 1);
  fclose($fp);

  // 소문자로 변환 후 반환
  return strtolower($c);
}


?>



위의 예제 소스 실행 결과 화면:
D:\Z>php getch.php
예/아니오/취소 선택 (Y/N/C) ? y
YES
D:\Z>php getch.php
예/아니오/취소 선택 (Y/N/C) ? n
NO
D:\Z>php getch.php
예/아니오/취소 선택 (Y/N/C) ? c
CANCEL
D:\Z>php getch.php
예/아니오/취소 선택 (Y/N/C) ? Y
YES
D:\Z>php getch.php
예/아니오/취소 선택 (Y/N/C) ? N
NO
D:\Z>php getch.php
예/아니오/취소 선택 (Y/N/C) ? C
CANCEL
D:\Z>php getch.php
예/아니오/취소 선택 (Y/N/C) ? uuu
eee
u
t
y
YES
D:\Z>





tag: php
PHP

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top