저는 모두 8 비트 정수 인 이진 파일을 가지고 있습니다. 나는 PHP unpack() 함수를 사용하려고 시도했지만 1 바이트 정수로 작동하는 인수를 얻을 수 없다. 더미 바이트 데이터를 결합하여 'n'/ 'v'인수를 사용할 수 있도록 노력했습니다. 나는 이것을하기 위해 윈도우 머신으로 일하고있다. 궁극적으로 8 비트 이진 정수 문자열을 기반으로 정수 배열을 반환하는 함수를 싶습니다. 내가 시도 코드는 다음과 같습니다 -PHP - 8 비트 정수 읽기
$dat_handle = "intergers.dat";
$dat_file = fopen($dat_handle, "rb");
$dat_data = fread($dat_file, 1);
$dummy = decbin(0);
$combined = $dummy.$dat_data;
$result = unpack("n", $combined);
""n "'은 부호없는 short - 16 비트입니다. 물론 8 비트 정수를 읽는 것은 16 비트 정수로 읽는다면 실패 할 것입니다.). 'unpack ("c", $ combined); 시도하십시오. –
@ 프랭크 그의 아이디어는 실제로 소리입니다 (서명되지 않은 데이터라고 가정 함), 그의 실행은 잘못되었습니다. 그는''chr (0)'을 prepend해야 할 때''0 ''을 prepending합니다. 그것은 말하기를, 이것은 여전히 그것을하는 잘못된 방법입니다! –
맞습니다. decbin은 char "0"이 포함 된 PHP 문자열을 반환하는데, 이것은 전혀 목표가 아닙니다. –