$ argv 배열에 이 거의 같으며 같은 값을 갖고 있으며 누가 그 값을 가지고 있는지 찾을 수 없습니다. 나는 모든 특수 문자의 탈출/인용이 사라진다는 것을 의미합니다. 따라서 다시 처리하지 않고도 동일한 매개 변수를 다른 스크립트에 전달 (또는 단순히 정확한 명령 호출) 할 수는 없으므로 쓸모없는 코드이므로 피하고 싶습니다. 여기 PHP 정확한 argv (현재 명령에 정확한 매개 변수)를 가져 오는 방법은 무엇입니까?
는 테스트 PHP 파일입니다 :<?php
var_dump($_SERVER["argv"]);
데모 : 다음 조인을 사용하는 경우
[[email protected] ~]$ php test.php key="val space" key2=val\ space
array(3) {
[0]=>
string(8) "test.php"
[1]=>
string(13) "key=val space"
[2]=>
string(14) "key2=val space"
}
을 따라서 ("", $의 ARGV는) 내가 얻을 것이다 :
test.php key=val space key2=val space
어느 것이 동일한 호출이 아닌지 (4 개 매개 변수가 아니라 2 개 포함).
는 다시 : 이상적으로 난에서 실행하고있어 정확히 동일한 명령을받을 필요가
당신 값. PHP가 보는 것과 정확히 일치합니다. 이스케이프는 PHP가 처리하기 전에 쉘에 의해 처리됩니다. – Amber
사람들이 명령 줄 스크립트에서 기대하는 것처럼 getopt 스타일 인수를 사용하는 대신 key = value 쌍을 사용하는 이유는 무엇입니까? – ThiefMaster
이 함수를 참조하십시오 : http://php.net/manual/en/function.getopt.php – fracz