일반적으로 PHP는 http 요청을 하며, GET 또는 POST를 사용하여 매개변수를 수신할 수 있습니다. 때로는 예약된 작업과 같은 셸 명령에서 스크립트로 PHP를 실행해야 합니다. 여기에는 쉘 명령에서 매개변수를 PHP에 전달하는 방법에 대한 문제가 포함됩니다. 매개변수를 전달하는 방법에는 일반적으로 세 가지가 있습니다.
1. $argv 또는 $argc 매개변수를 사용하여 수신
/**
* $argc $argv를 사용하여 매개변수를 허용하세요
*/
echo "{$argc} 매개변수 수신됨";
print_r($argv);
실행
[root@DELL113 lee]# /usr/local/php/bin/php test.php
매개변수 배열 1개 수신
(
[0] =>test.php
)
[root@DELL113 lee]# /usr/local/php/bin/php test.php a b c d
5개의 매개변수 배열을 받았습니다
(
[0] =>test.php
[1] =>
[2] =>b
[3] => ㄷ
[4] =>
)
[root@DELL113 lee]#
2. getopt 기능을 사용하세요
/**
* getopt 기능 사용
*/
$param_arr = getopt('a:b:');
print_r($param_arr);
실행
[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345
배열
(
[a] =>345
)
[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345 -b 12q3
배열
(
[a] =>345
[b] =>12q3
)
[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345 -b 12q3 -e 3322ff
배열
(
[a] =>345
[b] =>12q3
)
3. 사용자 입력 프롬프트
/**
* Python과 유사하게 사용자 입력 프롬프트
*/
fwrite(STDOUT,'블로그 이름을 입력하세요:');
echo '입력한 정보는 다음과 같습니다:'.fgets(STDIN);
실행
[root@DELL113 lee]# /usr/local/php/bin/php test.php
블로그 이름을 입력해주세요: Script Home www.jb51.net
입력하신 정보는 다음과 같습니다: 스크립트 홈 www.jb51.net
사용자가 빈 정보를 입력하는 것을 방지하기 위해 이렇게 할 수도 있습니다
/**
* Python과 유사하게 사용자 입력 프롬프트
*/
$fs = 참;
하세요{
oif($fs){
fwrite(STDOUT,'블로그 이름을 입력하세요:');
$fs = 거짓;
}그밖에{
fwrite(STDOUT,'죄송합니다. 블로그 이름은 비워둘 수 없습니다. 블로그 이름을 다시 입력하십시오:');
}
$name = 트림(fgets(STDIN));
}while(!$name);
echo '입력한 정보는 다음과 같습니다:'.$name."rn";
실행
[root@DELL113 lee]# /usr/local/php/bin/php test.php
블로그 이름을 입력하세요:
죄송합니다. 블로그 이름은 비워둘 수 없습니다. 블로그 이름을 다시 입력하세요. 스크립트 홈
입력하신 정보는 다음과 같습니다: 스크립트 홈