2012-05-02 2 views
0

저장합니다. 이진 파일에 비트 문자열을 저장하려고합니다. PHP는 파일의 비트 문자열을

내 문자열

01001001010011100101000001010101010101000011000100000000000000000100100101001110010100000101010101010100001100100000000000000000010010010100111001010000010101010101010000110011000000000000000001001001010011100101000001010101010101000011010000000000000000000100100101001110010100000101010101010100001101010000000000000000010010010100111001010000010101010101010000110110000000000000000001001001010011100101000001010101010101000011011100000000000000000100100101001110010100000101010101010100001110000000000000000000010100100100010101001100010000010101100100110001000000000000000001010010010001010100110001000001010110010011001000000000000000000101001001000101010011000100000101011001001100110000000000000000010100100100010101001100010000010101100100110100000000000000000001010010010001010100110001000001010110010011010100000000000000000101001001000101010011000100000101011001001101100000000000000000010100100100010101001100010000010101100100110111000000000000000001010010010001010100110001000001010110010011100000000000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110001001100000011000100110000001100010011000000110001001100000011000100110000001100010011000000110001001100000011000100110000001011010011001100101101001100110010110100110011001011010011001100101101001100110010110100110011001011010011001100101101001100110011001100110010001100110011001000110011001100100011001100110010001100110011001000110011001100100011001100110010001100110011001000110000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000 

입니다 그리고 이것은 내가 그것을 쓸 사용하고있는 코드입니다.

$fp = fopen('io2454929593', 'wb'); 
fwrite($fp, pack('C*', $bytes)); 
fclose($fp); 

나는 모두 1 바이트 길이의 파일을 얻을 수 있지만 길어야합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

아마 "pack"전에 고유 한 문자열에 배열을 implope 할 필요가 있습니다 – kappa

+0

PHP 매뉴얼을 보면'pack'에 대한 인수가 형식 (C *의 경우)과 무제한의 인수 목록. 각 인수는 1 바이트로 구성되어야합니다. 이것을 시도해 보라 :'pack ('C *', 0100100101001110 etc)' – Daan

답변

0

이 작업을 시도 할 수 있습니다 :

$s = '0100100101001110'; // your binary string 

$chars = array_map('bindec', str_split($s, 8)); 
array_unshift($chars, 'C*'); 
echo call_user_func_array('pack', $chars); 

면책 조항 :이 코드는 단지 pack를 호출 할 방법을 보여; 큰 문자열에는 사용하지 말아야합니다.

+0

충분하다. :) 2048 자의 예를 들어서도 257 인수 만 넘겨 줄 것이다. –

관련 문제