2011-10-13 6 views
0

PHP-GTK 트위터 클라이언트를 작성 중이며 OAuth 인증을 할 때 브라우저를 열어 사용자에게 대역 외 토큰을 표시해야합니다. 사용자가이 토큰에 입력 할 수 있도록이 시간 동안 대화 상자를 열고 작동 가능하게해야합니다.PHP : 명령을 실행 한 다음 계속 하시겠습니까?

문제는 Linux에서 브라우저를 xdg-open URL으로 열면 브라우저 창이 닫힐 때까지 PHP가 일시 중지 된 것 같습니다. 브라우저를 시작한 다음 대화 상자를 열려면 PHP가 필요합니다. PHP가 명령을 실행하고 스크립트를 계속 진행할 수 있습니까?

+0

멀티 스레딩은 도움이 될 것입니다. http://gr.php.net/pcntl. 나는 경험이없고 그것이 쉽거나 좋은지 모른다. – Melsi

답변

3

On * nix 외부 프로그램을 실행하고 & 연산자를 사용하여 계속 진행할 수 있습니다. 또한 제대로 작동하려면 STDOUT 및 STDERR을 다른 곳으로 리디렉션해야합니다.

그래서 당신은 같은 것을 할 것입니다 :

exec("xdg-open \"$url\" > /dev/null 2>&1 &"); 

나는 그것을 발견 할 때 추가됩니다 윈도우, 그것을 할 수있는 방법도 있습니다.

편집

당신은 다음 코드를 사용하여 Windows의 같은 일을 얻을 수 있습니다

$WshShell = new COM("WScript.Shell"); 
$oExec = $WshShell->Run($commandToExecute, 0, FALSE); 

두 번째 줄에 전달 된 FALSE 인수는 차단에서 정지 부분이다.

+0

완벽하게 작동합니다. 감사합니다! – soren121

관련 문제