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

 
Previous Post Perl 펄] 화면 지우기 함수, Clear Screen CLS리눅스/유닉스(Linux, Unix)에서 Perl(펄) 스크립트 실행 방법Vim Vi, 도스 텍스트를 유닉스 텍스트로 개행문자 변환; DOS CR-LF to Uni...Perl 펄] 운영체제(OS) 자동 판단 방법, 특수 변수로; Auto Detect Ope...Perl 펄] 두 변수의 값 교환/스왑 함수(서브루틴); Swap FunctionC++, 두 변수의 값 교환 함수 swap(); 참조에 의한 호출(Call by Refer...C언어] 변수 값 서로 교환, 스왑 함수; Swap FunctionC언어] 별표(*) 기호 의미, 뜻; Asterisk Pointer OperatorC언어] printf 함수에서 %p 의미. 변수 번지, 포인터 변수 주소 출력; Print...PHP 예제] 상수 정의 / 선언 방법; Define Constant

PHP CLI 예제] 명령행 옵션, argc argv 매개 변수 구하기

Saturday, May 05, 2007

PHP CLI (Command Line Interface) 에서는, 다른 프로그램들처럼 실행시 옵션을 지정해 줄 수 있습니다.

$argc 에는 옵션의 개수가 자동으로 저장되어 있고, $argv 에는 실제 옵션들이 문자열로 저장되어 있습니다. 다만 0번째 옵션은, PHP 파일 자신의 이름이기에, $argc 에서 빼기 1을 해주어야 정확한 옵션 개수가 구해집니다.

다음 예제는 PHP 버전 5 이상에서만 실행됩니다.

$argc, $argv: 실행시 옵션 구하기/출력 예제


소스 파일명: example.php
#!/usr/bin/php
<?php

  if ($argc == 1) {
    fwrite(STDERR, "옵션 없이 실행하셨군요.\n\n");
    exit(1); // 운영체제에 에러코드 1을 반환하며 종료
  }


  echo "* 옵션 개수: " . ($argc - 1) . "\n\n\n";

  print_r($argv);


  // 일반 배열처럼 숫자를 첨자로 지정하면
  // 각 옵션에 접근할 수 있음
  echo "\n\n* 특정 옵션 출력: \$argv[1] = " . $argv[1] . "\n";

?>



실행 결과 화면:
D:\Z>php example.php
옵션 없이 실행하셨군요.

D:\Z>php example.php 111 222 333 뿡뿡이 똠방각하
* 옵션 개수: 5


Array
(
    [0] => example.php
    [1] => 111
    [2] => 222
    [3] => 333
    [4] => 뿡뿡이
    [5] => 똠방각하
)


* 특정 옵션 출력: $argv[1] = 111

D:\Z>example.php 111 222 333 뿡뿡이 똠방각하
옵션 없이 실행하셨군요.



D:\Z>


주의 사항: 위의 빨간 문자열 부분은 에러가 난 곳입니다. (편의상 빨갛게 표현했을 뿐 PHP 자체가 색깔을 출력한 것은 아님)

도스창 등에서 실행할 때, 파일명 앞에
php example.php 옵션들...
이렇게 php 를 붙여 주어야 합니다.

php 확장자의 파일을 php.exe 에 직접 연결하여
example.php 옵션들...
이렇게 실행하면, 현재 PHP 5는, 옵션을 제대로 인식하지 못합니다.


그리고 PHP를, Perl 같은 일반 스크립트 언어처럼 사용하는 것은 아직은 좀 무리가 있었습니다. 물론 계속 버전업이 되면 나아지겠지요.


0 Comments:

Post a Comment

<< Home RSS 2.0 feed

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