2009-12-30 6 views
0

누군가 Yii 프레임 워크에서 사용자 지정 명령을 사용하여 stdin을 읽는 방법을 알고 있습니까?yii 명령에서 stdin을 읽는 방법

PHP 스크립트를 통해 수신 메일을 처리하는 스크립트를 작성하는 데 많은 시간이 걸리지 만 Yii 프레임 워크 내에서 기능이 필요합니다. 기본적으로 Yii는 CConsoleCommand를 확장 할 때 변수의 명령 줄 인수를 run() 메서드에 전달합니다. 어떤 아이디어?

답변

0

좋아,이게 재미있을거야.하지만 내 질문을 게시 한 후에도 알아 냈어.

당신이 Super cool Yii 프레임 워크를 사용하고 있고 이와 비슷한 것을하고 싶다면 여기에 어떻게 할 것인가. 공개 run() 메소드에서

그냥 다음을 추가

$fd = fopen("php://stdin", "r"); 
$content = ""; 
while (!feof($fd)){ 
    $content .= fread($fd, 1024); 
} 
fclose($fd); 

당신은 다음 전송 된 무엇이든 얻을 수있을 것입니다 /는 $ 콘텐츠 변수에 파일을 스트리밍.

이 블록 뒤에 추가 한 코드는 표준 입력을 캡처하는 즉시 처리됩니다. 당신은 표준 입력에서 입력을받을 수 CConsoleCommand::promt()을 사용할 수 있습니다

+2

는 PHP CLI SAPI는 당신을 위해 자동으로 작업을 수행 똑같은 "$ fd"를 일정한 STDIN에 넣습니다. Yii는 또한 STDIN이 선언 된 것을 담당합니다. – Flavius