PHP 에서 getopt 를 통 해 GNU C 스타일 명령 행 옵션 을 분석 합 니 다.
예 를 들 어 명령 wget 을 사용 하여 파일 을 다운로드 할 때 아래 의 일부 방식 으로 option 을 지정 해도 됩 니 다.
wget http://mengkang.net/a.jpg -O b.jpg
wget http://mengkang.net/a.jpg -O=b.jpg
wget http://mengkang.net/a.jpg -Ob.jpg --tries=3 -b
wget http://mengkang.net/a.jpg -Ob.jpg --tries=3 -bvd
command line options 의 규칙 을 정리 합 니 다.우선 매개 변 수 는 짧 은 매개 변수 이름과 전체 매개 변수 이름 으로 나 뉘 고 일 부 는 맵 관계 도 있 습 니 다.예 를 들 어 우리 가 wget 을 사용 할 때-O 대응--output-document.정리 options 사용 규범
4.567917.짧 은 참 수 는 하나의 제한 이 있 고 하나의 char 문자 만 있 을 수 있 으 며 1 바이트 만 있 을 수 있 고 1 바이트 만 초과 할 수 없다.예 를 들 어 위의 네 번 째 명령 의 마지막 매개 변 수 는 하나의 매개 변수 인지 세 개의 매개 변수 인지 모른다
4.567917.행 이 실제 인삼 사이 에 참여 하면 직접 연결 할 수도 있 고 빈 칸 으로 분리 할 수도 있 으 며 등호 로 연결 할 수도 있다
getopt ( string $options [, array $longopts [, int &$optind ]] ) : array
https://www.php.net/manual/zh/function.getopt.php $options 짧 은 매개 변수 문자 목록,매개 변수 문자 뒤에 사용:표 지 는 값 을 전달 해 야 합 니 다.매개 변수 문자 뒤에 사용:표 지 는 전송 값 을 선택 할 수 있 습 니 다.매개 변수 문자 만 이 매개 변수(또는 옵션)가 전송 값 을 받 아들 이지 않 음 을 표시 합 니 다.
$longopts 길이 인 자 는 다 바이트 이기 때문에 배열 이 어야 합 니 다.그렇지 않 으 면 구분 할 수 없습니다.긴 매개 변 수 는 위 에 따라:,:규칙 을 따른다.
pp 에는 구조 체 의 지지 가 부족 합 니 다.c 의 긴 옵션 보다 설정 이 간결 하지만 장단 옵션 의 맵 관계 설정 도 부족 합 니 다.
$shortOpts = "O:Vv::dh";
$longOpts = ["output-document:","version","verbose::", "debug", "help"];
$options = getopt($shortOpts, $longOpts);
var_export($options);
php getopt.php -Oa.jpg
array (
'O' => 'a.jpg',
)
php getopt.php -O=a.jpg
array (
'O' => 'a.jpg',
)
php getopt.php -O a.jpg
array (
'O' => 'a.jpg',
)
php getopt.php -O=a.jpg -dhV
array (
'O' => 'a.jpg',
'd' => false,
'h' => false,
'V' => false,
)
php getopt.php -O=a.jpg -dhV -vvv
array (
'O' => 'a.jpg',
'd' => false,
'h' => false,
'V' => false,
'v' => 'vv',
)
위의 예 에서 나의 짧 은 매개 변수 와 긴 매개 변 수 는 대응 하지만 데이터 구조 로 그들의 대응 관 계 를 나타 내지 않 는 다(C 안에 option 구조 체 가 있어 이 대응 관계 의 관 리 를 한다).그래서 우리 둘 다 전달 하면 프로그램 두 개의 값 을 받 을 수 있 고 우 리 는 짧 은 매개 변수 와 긴 매개 변 수 를 어느 것 을 사용 하 는 지 스스로 판단 한다.
php getopt.php -O=a.jpg -dhV -vvv --output-document b.jpg --debug
array (
'O' => 'a.jpg',
'd' => false,
'h' => false,
'V' => false,
'v' => 'vv',
'output-document' => 'b.jpg',
'debug' => false,
)
이렇게 쓰 는 것 은 규범 에 맞지 않 으 니,가능 한 한 이런 쓰 는 방법 을 피해 야 한다.
php getopt.php -O=a.jpg -dhVvvv
array (
'O' => 'a.jpg',
'd' => false,
'h' => false,
'V' => false,
'v' => 'vv',
)
php getopt.php -O=a.jpg -dhvvvV
array (
'O' => 'a.jpg',
'd' => false,
'h' => false,
'v' => 'vvV',
)
이 GNU C command line options 가 사용 하 는 방식 을 정리 하면 명령 을 사용 하면 더욱 빠 져 나 갑 니 다.왜 Liux 에서 각종 도 구 를 사용 하 는 사례 를'기괴 하 다'고 쓰 는 지 헷 갈 리 지 않 습 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.