php에서, bindec () 함수는 이진 문자열을 10 진수로 변환하는 데 사용됩니다. 기본 사용법은 매우 간단합니다. 순수한 바이너리 스트링 (0 및 1으로 구성)을 통과하면 해당 소수점 정수를 반환 할 수 있습니다.
예를 들어:
<코드> <? php echo bindec ( '1011'); // 출력 11?> </code>그러나 들어오는 바이너리 스트링에 공백이 포함 된 경우 Bindec () 함수는 기본적으로 지원되지 않습니다. 문자열을 처음부터 구문 분석하고 0 또는 1이 아닌 문자를 만나면 처리를 중지하므로 공간은 잘못된 결과를 초래하고 0을 반환합니다.
예:
<코드> <? php echo bindec ( '101 1'); // 공간이 발생한 후 처리가 중지되어 실제로 '101'?> </code>를 구문 분석했습니다.보시다시피, 공간은 Bindec ()를 정상적으로 완성한 이진 데이터를 구문 분석 할 수 없게 만듭니다.
바이너리 스트링에 공백이 있고 올바르게 변환하려면 먼저 PHP의 문자열 처리 기능을 사용하여 공백을 제거한 다음 Bindec () 로 전달할 수 있습니다.
예:
<코드> <? php $ binarywithspaces = '101 1101 001'; $ cleanbinary = str_replace ( '', '', $ binarywithSpaces); $ decimalValue = bindec ($ cleanbinary); echo $ decimalValue; ?> </code>여기서, 모든 공백은 str_replace () 를 통해 제거 된 다음 Bindec ()가 호출되어 전달 된 것이 순수한 이진 문자열인지 확인합니다.
문자열에 다른 공백 문자 (예 : 탭 문자 \ t , line breaks \ n 등)가있는 경우 preg_replace ()를 사용하여 모든 공백을 제거하는 것이 좋습니다.
<code> <? php $ binarywithwhitespace = "101 \ t1101 \ n001"; $ cleanbinary = preg_replace ( '/\ s+/', '', $ binarywithwhitespace); $ decimalValue = bindec ($ cleanbinary); echo $ decimalValue; ?> </code>이를 통해 바이너리 스트링에 공백 문자가 없으므로 Bindec ()를 정확하게 구문 분석 할 수 있습니다.
bindec () 함수는 공백 또는 기타 공백 문자를 포함하는 이진 문자열 입력을 지원하지 않습니다.
bindec ()를 사용하기 전에 입력 문자열의 모든 흰색과 공간 문자를 지우십시오.
str_replace ( '', '', $ str)를 사용하여 공백을 제거하거나 더 강력한 preg_replace ( '/\ s+/', ',', $ str)를 사용하여 모든 공백 문자를 제거 할 수 있습니다.
깨끗한 순수 바이너리 문자열을 처리함으로써 만 Bindec ()가 10 진수 값을 올바르게 반환 할 수 있도록합니다.