바이너리 데이터인지 간단하게 구분하는 함수
가끔 텍스트 파일인지 바이너리 인지 구분해야 될 때가 있습니다.
바이너리 인지 구분보다는 깨진한글인지 구분의 필요성이라고 해야 맞을지 모르겠습니다.
한글 깨진것에 대한 구분방법은 utf-8로 인코딩 시켰다가 다시 디코딩 시키는 방법도 있습니다.
/**
* 영문기준 텍스트 인가 확인해주는것
*
* @param string $str
*
* @return bool
*
*/
function isBinary( string $str ) : bool {
// 16진수 20이면 10진수 32로 공백으로. 공백부터 체크함을 알 수 있다.
$is_binary = preg_match('~[^\x20-\x7E\t\r\n]~', $str);
return $is_binary;
}
// 한글이 바이너리로 출력이 된다.
$str = 'abc 한글';
echo '바이너리인가: ' . isBinary($str) . "\n";
$is_binary= preg_match('/[\x00-\x08\x0E-\x1F\x7F]/', $str);
echo '바이너리인가: ' . $is_binary . "\n";