2014-11-02 3 views
2

PHP를 사용하여 프로그램을 실행하고 출력을 계속 보내려고합니다. exec()을 사용해 보았지만 설명서 페이지에 나와 있듯이 프로세스가 돌아 오기를 기다리면서 중단됩니다.입력을 프로세스로 파이프하는 방법은 무엇입니까?

exec() 같이 CLI 응용 프로그램에 명령을 계속 보낼 수 있습니까?

응용 프로그램이 닫힌 소스이므로 응용 프로그램을 변경하여 lock 파일이나 유사한 질문에 대한 답변으로 제안 된 다른 것을 찾지는 못합니다.

+0

PHP에 내장하고, 이벤트 또는 콜백이없는 사용, 특히 MySQL과 통신을 시도하는 경우. 그래서 나는 그것을 할 수있는 쉬운 방법이 있는지 의심 스럽다. –

+0

이 작업에 더 적합한 언어가 있습니까? 내가하고 싶은 것은'mysql -uroot -proot'를 타이프하고,'use testdb; select * from test;와 같은 식으로 MySQL 프로세스를 시작합니다. –

답변

1

proc_open 명령을 찾고 있습니다. 이 명령은 프로그램의 파이프로 열린 파일 설명자에 표준 입력과 출력을 연결하는 프로세스를 실행합니다. 0 디스크립터를 쓰는 것은 프로세스에 의해 stdin에 입력으로 받아 들여지고 출력되는 내용은 프로그램에서 파일로 읽을 수 있습니다. 링크 된 PHP 문서의 예제 코드는 여러분에게 도움이 될 것입니다.

그러나 오히려 비동기 작동하지 않습니다 기본적으로 mysql functionality of php

+0

이것이 내가 원하는 것입니다. mysql 예제는 내가 필요한 것을 보여주기위한 예제 일 뿐이다. 다행히도이 방법을 사용하여 데이터베이스를 쿼리하지 않았습니다. :-) –

관련 문제