재미있는 수학

Menu

php exec 예제

passthru() 함수는 명령을 실행하고 원시 형식으로 출력을 반환합니다. 모든 PHP 핵심 기능과 마찬가지로 적당히 사용하십시오. 허용되는 데이터에 특별한 주의를 기울이고 exec에서 필터링되지 않은 사용자 제공 데이터를 피하십시오. 그러나 함수를 피하는 이유를 이해하지 않고 함수를 피하지 마십시오. 그것은 당신 또는 당신에게서 배울 사람들에게 도움이되지 않습니다. 출력 인수가 있으면 지정된 배열이 명령의 모든 출력 줄로 채워집니다. n과 같은 후행 공백은 이 배열에 포함되지 않습니다. 배열에 이미 일부 요소가 포함되어 있는 경우 exec()는 배열의 끝에 부가됩니다. 함수가 요소를 더하지 않으려면 exec()에 전달하기 전에 배열에서 unset()를 호출합니다. 참고: 안전 모드가 활성화된 경우 safe_mode_exec_dir 내에서만 파일을 실행할 수 있습니다. 실용적인 이유로 현재 .? 실행 할 경로의 구성 요소입니다. 그러나 아래와 같은 출력 매개 변수를 사용할 수 있습니다. 이 예제에서는 명령 출력을 o에 배치합니다.

출력 매개 변수는 배열 유형에 있으므로 print_r을 사용하여 출력을 인쇄합니다. shell_exec() 함수는 exec()과 유사하지만 대신 전체 결과를 문자열로 출력합니다. 놀랍게도, 많은 PHP 개발자가 이것을 알고 있지만, PHP는 백틱 (` )의 내용을 쉘 명령으로 실행합니다. 다른 실행 함수, 특히 shell_exec() 및 system()이 있지만 크게 관련이 없습니다 – shell_exec(예: 앞에서 살펴본 백틱 연산자와 정확히 동일한 방식으로 작동합니다). 실행하려는 소스 코드를 인코딩하고 실행 시 디코딩하여 이 exec 트릭을 eval과 결합할 수도 있습니다. 이렇게 하면 하위 프로세스를 전체적으로 훨씬 깔끔하게 시작할 수 있습니다. 헬로, 미안 내 영어가 너무 좋지 않다. 내 질문 : 어떻게 리눅스에서 임원을 활성화 할 수 있습니까? 답변 주셔서 감사합니다 :-) 안녕 어쩌면 이러한 제한은 다른 웹 스페이스 사용자 (즉, 실제 사람)가 하나의 UNIX 사용자 계정 (FTP 서버 등에서만 별도의 계정)을 “공유”하는 서버에 유용합니다. IIRC는 일반적인 아파치 설치의 경우입니다 (모든 PHP 스크립트는 사용자 “아파치”로 실행되며 사용자 ID를 변경할 수있는 별도의 PHP 인터프리터 프로세스가 생성되지 않습니다). 따라서 PHP 스크립트가 전체 액세스가 허용되면 FTP 서버의 제한은 쓸모없게 됩니다. (그러나 여전히 CGI를 사용하지 않도록 설정해야합니다, 그렇지 않으면 하나는 업로드하고 쉘 스크립트를 실행할 수 있습니다 …) 또 다른 유사한 기능은 system()입니다.

system() 기능은 에코 나 인쇄를 사용하지 않고 직접 출력을 표시합니다. 이 예제에서는 ls 명령을 다시 실행합니다. exec, passthru, shell_exec, 시스템, proc_open 및 popen은 모두 서버 권한에 따라 달라집니다. 서버가 제대로 구성된 경우 사용자 계정은 이러한 작업을 통해 위험한 작업을 수행할 수 없습니다. 에코를 사용하는 것은 반환 값을 얻을 수있는 신뢰할 수있는 방법이 아닙니다. 변수를 사용하여 반환 값을 설정하고 원하는 대로 사용할 수 있습니다. Int 이 예제에서는 프로세스 반환 값을 v 변수로 설정합니다. DSL은 내부 또는 외부일 수 있습니다. 내부 DSL은 기존 프로그래밍 언어를 구문으로 사용하지만 해당 구문 내에서 고유하게 구조화되어 있습니다. 유창한 인터페이스는 이것의 좋은 예입니다 : PHP에서 프로그램을 실행하는 두 가지 중요한 방법이 있으며, 이들은 exec() 및 passthru ()입니다. 이 두 가지 모두 실행하려는 프로그램의 이름인 최소 하나의 매개 변수를 사용하지만, 그 차이는 exec()가 프로그램을 실행한 다음 해당 프로그램에서 출력된 마지막 줄을 반환 값으로 다시 보낸다는 것입니다.

반면, passthru() 함수는 지정된 프로그램을 실행하고 프로그램이 생성하는 모든 출력을 출력합니다.

No categories

Comments

Sorry, comments are closed for this item.