php xml파서인데 xml문자셋타입이 UTF-8이고 서버및 DB 타입은 EUC-KR입니다. 한글깨짐 및 에러가 나오는데 수정좀.. > 십년전오늘

십년전오늘

10년전 추억의 책장을 넘기며

php xml파서인데 xml문자셋타입이 UTF-8이고 서버및 DB 타입은 EUC-KR입니다. 한글깨짐 및 에러가 나오는데 수정좀.. 정보

php xml파서인데 xml문자셋타입이 UTF-8이고 서버및 DB 타입은 EUC-KR입니다. 한글깨짐 및 에러가 나오는데 수정좀..

본문

<html>
<head>
  <title>연합뉴스 샘플</title>
  <meta http-equiv="Content-Type" content="text/xml; charset=euc-kr">
  <style type="text/css">
  TD {
      font-size :10pt;
  }
  </style>
</head>

<body>
<?
$xml_parser = @xml_parser_create("UTF-8") or die("XML 파서를 생성하지 못했습니다.");

xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, FALSE);

$fp = @fopen("ynews.xml", "r") or die("XML 파일을 가져오지 못했습니다.");
while(!feof($fp)) {
    $data = fgets($fp);
    if(!xml_parse($xml_parser, trim($data), feof($fp))) {
        die("에러 위치 : " . xml_get_current_line_number($xml_parser) . "번째 줄, " . xml_get_current_column_number($xml_parser) . "번째 위치<br>\n" .
              "에러 메시지 : " . xml_error_string(xml_get_error_code($xml_parser))         
            );
    }
}

xml_parser_free($xml_parser);

?>

</body>
</html>


<?


// XML 문서 파싱 중 열리는 태그(ex: <title>)를 만났을 때 호출되는 핸들러
function startElement($parser, $name, $attr) {
    switch ($name) {
        case "YnewsML" :
            echo "<table width=620 border=0 cellspacing=1 cellpadding=3 bgColor=#000000>\n";
            break;

        case "Title" :
            echo "<tr>\n";
            echo "  <td width=100 align=center bgColor=#CACED8><b>제목</b></td>\n";
            echo "  <td bgColor=#E2E4E8>";
            break;
       
        case "Body" :
            echo "<tr>\n";
            echo "  <td width=100 align=center bgColor=#CACED8><b>내용</b></td>\n";
            echo "  <td bgColor=#E2E4E8>";
            break;

       
            echo "<li>";
            break;
    }
}

// XML 문서 파싱 중 닫히는 태그(ex: </title>)를 만났을 때 호출되는 핸들러
function endElement($parser, $name) {
    switch ($name) {
        case "YmewsML" :
            echo "</table><br>\n\n";
            break;

        case "Title" :
        case "Body" :
    break;

       
            echo "</li>\n";
            break;
    }   
}

// XML 문서 파싱 중 태그사이의 내용(ex: '임베디드 하드웨어 이해와 설계')을 만났을 때 호출되는 핸들러
function characterData($parser, $cdata) {
    echo iconv("EUC-KR", "UTF-8", $cdata);
}


?>
----------------------------------------------------------------------------------------------------------
이상 php의 소스이고 XML문자셋은 UTF-8 입니다.
즉 XML문서 파싱인데 UTF-8인 문서를 파서 한다음 뿌려주기 할때 EUC-KR로요...
UTF-8 -> EUC-KR
아...php버젼은 4.4 버젼이고 서버는 EUC-Kr 입니다.
-----------------------------------------------------------------------------------------------
CAKR0AKR20070807170200053200708071714443에러 위치 : 1번째 줄, 268번째 위치
에러 메시지 : Invalid character <---------------------에러코드입니다.

댓글 전체

전체 130,530
십년전오늘 내용 검색

회원로그인

진행중 포인트경매

  1. 참여76 회 시작24.04.19 15:40 종료24.04.26 15:40
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT