현재 위치: > 최신 기사 목록> PHP의 Bindec () 기능이 공백을 포함하는 이진 문자열 입력을 지원합니까? Bindec ()을 올바르게 사용하여 이진 데이터를 공간으로 처리하는 방법은 무엇입니까?

PHP의 Bindec () 기능이 공백을 포함하는 이진 문자열 입력을 지원합니까? Bindec ()을 올바르게 사용하여 이진 데이터를 공간으로 처리하는 방법은 무엇입니까?

M66 2025-06-23

php에서, bindec () 함수는 이진 문자열을 10 진수로 변환하는 데 사용됩니다. 기본 사용법은 매우 간단합니다. 순수한 바이너리 스트링 (0 및 1으로 구성)을 통과하면 해당 소수점 정수를 반환 할 수 있습니다.

예를 들어:

<코드> <? php echo bindec ( '1011'); // 출력 11?> </code>

bindec () 함수는 공백을 포함하는 이진 문자열을 처리합니다

그러나 들어오는 바이너리 스트링에 공백이 포함 된 경우 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 진수 값을 올바르게 반환 할 수 있도록합니다.