PHP

    깨진 한글 체크
    • 조회수 6,364
    • 작성일 2008-08-03
    •  

    <?php
    function is_regular_string($cstring)
    {
        $slen = strlen($cstring);

        for($i=0;$i<$slen;$i++) 
        {
          // 1byte 문자 
          if(ord($cstring[$i])<=127) 
          {
              $i++;
          }
          // 2byte 문자             
          else if(ord($cstring[$i])>=hexdec('80')) 
          {
            if (isset($cstring{$i+1}) && $cstring{$i+1} != '' ) 
            {                    
               if(((ord($cstring{$i})>=hexdec('B0') && ord($cstring{$i+1})>=hexdec('A1')) && (ord($cstring{$i})<=hexdec('C8') && ord($cstring{$i+1})<=hexdec('FE'))) || ((ord($cstring{$i})>=hexdec('81') && ord($cstring{$i+1})>=hexdec('41')) && (ord($cstring{$i})<=hexdec('A0') && ord($cstring{$i+1})<=hexdec('FE'))) || ((ord($cstring{$i})>=hexdec('A1') && ord($cstring{$i+1})>=hexdec('41')) && (ord($cstring{$i})<=hexdec('C6') && ord($cstring{$i+1})<=hexdec('A0'))) || ((ord($cstring{$i})>=hexdec('A4') && ord($cstring{$i+1})>=hexdec('A1')) && (ord($cstring{$i})<=hexdec('A4') && ord($cstring{$i+1})<=hexdec('FE'))))
                {
                $i++;
                }
               else 
                {
                 return false;
                }                
            }
          }
          else
          {
            return false;
          }
        }
        return true;
    }
    ?>