728x90
euc-kr 이 포함된 xml 파일을 파싱할때 사용할 수 있는 코드
class xml2Array { var $arrOutput = array(); var $resParser; var $strXmlData; function parse($strInputXML) { $this----->resParser = xml_parser_create("UTF-8"); //$this->resParser = xml_parser_create (); //$this->resParser = xml_parser_create("ISO-8859-1"); xml_set_object($this->resParser,$this); xml_set_element_handler($this->resParser, "tagOpen", "tagClosed"); xml_set_character_data_handler($this->resParser, "tagData"); //xml_parser_set_option($this->resParser, XML_OPTION_TARGET_ENCODING, "ISO-8859-1"); $strInputXML = iconv("UTF-8", "EUC-KR", $strInputXML); $this->strXmlData = xml_parse($this->resParser, $strInputXML); if(!$this->strXmlData) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($this->resParser)), xml_get_current_line_number($this->resParser))); } xml_parser_free($this->resParser); return $this->arrOutput; } function tagOpen($parser, $name, $attrs) { $tag=array("name"=>$name,"attrs"=>$attrs); array_push($this->arrOutput,$tag); } function tagData($parser, $tagData) { if(trim($tagData)) { if(isset($this->arrOutput[count($this->arrOutput)-1]['tagData'])) { $tagData = iconv("UTF-8", "EUC-KR", $tagData); $this->arrOutput[count($this->arrOutput)-1]['tagData'] .= $tagData; } else { $tagData = iconv("UTF-8", "EUC-KR", $tagData); $this->arrOutput[count($this->arrOutput)-1]['tagData'] = $tagData; } } } function tagClosed($parser, $name) { $this->arrOutput[count($this->arrOutput)-2]['children'][] = $this->arrOutput[count($this->arrOutput)-1]; array_pop($this->arrOutput); } } $pageurl = "./resultXML.jsp"; //$thecontents = file_get_contents($pageurl); $buf = file_get_contents($pageurl); $thecontents = iconv("EUC-KR", "UTF-8", $buf); $objXML = new xml2Array(); $arrOutput = $objXML->parse($thecontents); //print_r($arrOutput);
출처 :
'Engineering > PHP' 카테고리의 다른 글
log4php 를 이용한 로깅 in PHP (0) | 2017.10.26 |
---|---|
php 날짜형 포맷 (0) | 2013.02.26 |
그누보드 설치시 하얀화면 발생 (0) | 2012.11.16 |
CentOS 5.6 에서 php 5.3 설치 (0) | 2012.05.15 |
apm 설치 (0) | 2011.11.14 |