Saturday, May 05, 2007
PHP CLI 예제] 명령행 옵션, argc argv 매개 변수 구하기
PHP CLI (Command Line Interface) 에서는, 다른 프로그램들처럼 실행시 옵션을 지정해 줄 수 있습니다.
$argc 에는 옵션의 개수가 자동으로 저장되어 있고, $argv 에는 실제 옵션들이 문자열로 저장되어 있습니다. 다만 0번째 옵션은, PHP 파일 자신의 이름이기에, $argc 에서 빼기 1을 해주어야 정확한 옵션 개수가 구해집니다.
다음 예제는 PHP 버전 5 이상에서만 실행됩니다.
소스 파일명: example.php
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
실행 결과 화면:
주의 사항: 위의 빨간 문자열 부분은 에러가 난 곳입니다. (편의상 빨갛게 표현했을 뿐 PHP 자체가 색깔을 출력한 것은 아님)
도스창 등에서 실행할 때, 파일명 앞에
php example.php 옵션들...
이렇게 php 를 붙여 주어야 합니다.
php 확장자의 파일을 php.exe 에 직접 연결하여
example.php 옵션들...
이렇게 실행하면, 현재 PHP 5는, 옵션을 제대로 인식하지 못합니다.
그리고 PHP를, Perl 같은 일반 스크립트 언어처럼 사용하는 것은 아직은 좀 무리가 있었습니다. 물론 계속 버전업이 되면 나아지겠지요.
$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";
?>
<?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>
옵션 없이 실행하셨군요.
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 같은 일반 스크립트 언어처럼 사용하는 것은 아직은 좀 무리가 있었습니다. 물론 계속 버전업이 되면 나아지겠지요.
tag: php
PHP
<< Home