테스트 사이트 - 개발 중인 베타 버전입니다

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

· 17년 전 · 3902
<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 <---------------------에러코드입니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
32341
32339
32326
32325
32322
32319
32318
32316
32315
32313
32312
32311
32310
32304
32303
32300
32293
32292
32291
32285
32284
32275
32271
32268
32265
32261
32258
32257
32255
32254
32253
32251
32250
32249
32247
32246
32245
32244
32243
32242
32241
32240
32239
32238
32237
32236
32232
32229
32228
32227
32217
32215
32214
32213
32211
32207
32196
32193
32192
32190
32188
32186
32184
32173
32172
32171
32167
32165
32163
32162
32158
32157
32155
32151
32149
32135
32132
32127
32125
32122
32120
32119
32117
32116
32115
32114
32112
32111
32109
32107
32104
32103
32102
32101
32094
32089
20404
31036
8279
8268