본문 바로가기
tip

XML: CDATA Sanitize?

by [김경민]™ ┌(  ̄∇ ̄)┘™ 2013. 4. 27.
728x90

출처 :

- http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/XML/Q_24814185.html

- http://www.deisys.net/222

 

CDATA 섹션에 허용되는 unicode range 만 남기기

private function strip_invalid_xml_chars( $in ) { 
  
                $out = ""; 
                // Used to hold the output. 
  
                $current; 
                // Used to reference the current character. 
  
                if ( empty($in) ) { 
                        return ""; 
                        // vacancy test. 
                } 
                $length = strlen($in); 
                for ( $i = 0; $i < $length; $i++) { 
                        $current = ord($in{$i}); 
                        if ( ($current == 0x9) || ($current == 0xA) || ($current == 0xD) || (($current >= 0x20) && ($current <= 0xD7FF)) || (($current >= 0xE000) && ($current <= 0xFFFD)) || (($current >= 0x10000) && ($current <= 0x10FFFF))) { 
                                $out .= chr($current); 
                        } else { 
                                $out .= " "; 
                        } 
                } 
                return $out; 
  
        }
728x90

댓글