나는 PHP 스크립트를 작성 중이므로 선택적으로 스크립트 입력으로 파일을 사용하고 싶습니다. 이 방법 :bash 입력이 PHP 스크립트로 리디렉션되는지 확인하는 방법은 무엇입니까?
$ php script.php < file.txt
실제로, 해요, 수는 file_get_contents
를 사용하는 것이해야 할 일 :
$data = file_get_contents('php://stdin');
을하지만, 내가 입력에 파일을 통과하지 않는 경우, 스크립트가, indefinetelly 응답 대기 입력 용.
나는 다음을 시도했지만 작동하지 않았다$data = '';
$in = fopen('php://stdin', 'r');
do {
$bytes = fread($in, 4096);
// Maybe the input will be empty here?! But no, it's not :(
if (empty($bytes)) {
break;
}
$data .= $bytes;
} while (!feof($in));
스크립트가 값을 반환 할 fread
을 기다립니다,하지만 반환하지 않습니다. 나는 그것이 같은 입력을 기다리는 것 같다. file_get_contents
.
do { ... } while
루프를 while { ... }
으로 바꾸고 입력을 읽으려고 시도하기 전에 EOF
을 확인하려는 시도가있었습니다. 하지만 그것도 효과가 없었습니다.
어떻게 할 수 있습니까?
@JustOnUnderMillions 아마 PHP 클라이언트에서 너무 많이 묻습니다.하지만이 로직을 구현하는 다른 ** 비 PHP ** 명령 줄 프로그램이 있습니다. 입력을 읽거나 무시합니다. –
네가 맞다. 나는 틀린 차선에 있었다. @Alex Howansky는 그것을 가지고 있습니다. – JustOnUnderMillions