PHP exec () vs system () vs passthru ()
PHPPHP exec () vs system () vs passthru ()
차이점은 무엇입니까?
각 기능에 대한 구체적인 상황이나 이유가 있습니까? 그렇다면 그러한 상황에 대한 몇 가지 예를 들려 줄 수 있습니까?
PHP.net은 외부 프로그램을 실행하는 데 사용된다고 말합니다. 참조를 참조하십시오 내가 본 예들에서 나는 분명한 차이점을 보지 못했다.
단순히 스크립트 (bash 또는 python)를 실행하는 경우, 어떤 함수를 사용하도록 권합니까?
해결법
-
==============================
1.그들은 약간 다른 목적을 가지고 있습니다.
그들은 약간 다른 목적을 가지고 있습니다.
어쨌든, 나는 그 중 하나를 사용하지 말 것을 제안합니다. 그것들은 모두 매우 이식 불가능한 코드를 생성합니다.
-
==============================
2.http://php.net/ && Chipmunkninja에서 가져온 내용 :
http://php.net/ && Chipmunkninja에서 가져온 내용 :
-
==============================
3.이전의 대답은 모두 약간 혼란 스럽거나 불완전한 것으로 보였으므로 여기에 차이점의 표가 있습니다 ...
이전의 대답은 모두 약간 혼란 스럽거나 불완전한 것으로 보였으므로 여기에 차이점의 표가 있습니다 ...
+----------------+-----------------+----------------+----------------+ | Command | Displays Output | Can Get Output | Gets Exit Code | +----------------+-----------------+----------------+----------------+ | system() | Yes (as text) | Last line only | Yes | | passthru() | Yes (raw) | No | Yes | | exec() | No | Yes (array) | Yes | | shell_exec() | No | Yes (string) | No | | backticks (``) | No | Yes (string) | No | +----------------+-----------------+----------------+----------------+
알고 있어야 할 기타 사항 :
-
==============================
4.명령이 반환 할 수있는 출력을 처리하는 방법과 PHP 스크립트가 호출 수신자 프로그램이 끝날 때까지 기다리는 지 여부에 관한 내용이 있습니다.
명령이 반환 할 수있는 출력을 처리하는 방법과 PHP 스크립트가 호출 수신자 프로그램이 끝날 때까지 기다리는 지 여부에 관한 내용이 있습니다.
명령을 실행하고 명령의 모든 데이터를 간섭없이 직접 전달해야하는 경우, passthru () 기능을 사용하십시오.
-
==============================
5.명령 줄에서 PHP 스크립트를 실행하는 경우 passthru ()는 큰 이점이 있습니다. vim, 대화 상자 등과 같은 스크립트 / 프로그램을 실행할 수있게하여 프로그램이 제어를 처리하고 완료 될 때까지 스크립트로 돌아 가게합니다.
명령 줄에서 PHP 스크립트를 실행하는 경우 passthru ()는 큰 이점이 있습니다. vim, 대화 상자 등과 같은 스크립트 / 프로그램을 실행할 수있게하여 프로그램이 제어를 처리하고 완료 될 때까지 스크립트로 돌아 가게합니다.
system () 또는 exec ()를 사용하여 스크립트 / 프로그램을 실행하면 간단하게 작동하지 않습니다.
Gotcha : 웬일인지, PHP에서는 passthru ()를 사용하여 실행할 수 없습니다.
from https://stackoverflow.com/questions/732832/php-exec-vs-system-vs-passthru by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
PDOException SQLSTATE [HY000] [2002] 그러한 파일 또는 디렉토리가 존재하지 않는다 (0) | 2018.09.10 |
---|---|
객체를 배열로 변환하려면 어떻게해야합니까? (0) | 2018.09.10 |
데몬 프로세스로 PHP 스크립트 실행 (0) | 2018.09.10 |
양식 제출시 PHP $ _POST 배열이 비어 있습니다. (0) | 2018.09.10 |
mysqli_fetch_array ()는 매개 변수 1이 mysqli_result, boolean이 [duplicate] (0) | 2018.09.09 |