태터툴즈 고쳐쓰기 #11 - UTF-8 RSS 읽기, 트랙백 보내기
태터툴즈 1.0부터는 UTF-8 기반이므로 이 내용은 1.0 미만에만 해당되는 내용임.
UTF-8 문자로 작성된 블로그에 트랙백을 보낼때면 상대방의 사이트에는 깨진 문자로 기록된다. 곧 태터툴즈 새버전에서 이 문제가 해결될 것 같지만 그때까지는 임시방편으로 태터툴즈를 약간 고쳐서 써야한다. 또, 역시 UTF-8로 작성된 RSS도 태터툴즈 리더에서는 읽을 수 없는데 이것도 간단한 변환 프로그램을 통해서 (임시로) 해결할 수 있다. 모두 iconv() 함수를 이용하는 방법이라 iconv를 지원하지 않는 서버에서는 사용할 수 없다. (예를 들면 80PORT 등)
먼저 UTF-8로 제공되는 RSS를 태터 리더에서 읽으려면,
1. 우선 HTTP 접속하는 PHP 클래스 여기 있는 http.php 파일을 받아서 계정에 올려놓고
2. 같은 경로에 아래의 코드를 utf8rss.php 등의 이름으로 저장한다
3. 원래의 RSS 주소가 http://foo.com/index.xml 이고 위에서 작성한 utf8rss.php 파일의 경로가 http://mydomain.com/utf8rss.php 라면 태터툴즈 리더 주소록에 이렇게 등록하면 끝이다.
어디까지나 임시방편이므로 에러처리 부분은 넣지 않았다. hof님 블로그가 UTF-8로 바뀐 뒤로 계속 써오는 동안 별다른 에러는 없었으니 크게 걱정할 부분은 안되겠지만.. 다시한번 강조하지만 이건 임시방편..;
그리고 태터툴즈에서 UTF-8 블로그로 트랙백을 보내는 방법
1. 태터툴즈 admin/article_trackback_pop.php 파일 100번째줄에 아래의 내용을 끼워넣는다.
2. 이번엔 39번째줄에서 아래 문장을 찾아,
이제 UTF-8 블로그에 트랙백을 보낼때 인코딩 항목에서 UTF-8을 체크한 후 SEND 하면 된다.(트랙백 테스트할 곳이 없으신 분은 http://crizin.net/soojung/entry.php?blogid=1 이쪽으로 가셔서 트랙백을 보내보세요)
UTF-8 문자로 작성된 블로그에 트랙백을 보낼때면 상대방의 사이트에는 깨진 문자로 기록된다. 곧 태터툴즈 새버전에서 이 문제가 해결될 것 같지만 그때까지는 임시방편으로 태터툴즈를 약간 고쳐서 써야한다. 또, 역시 UTF-8로 작성된 RSS도 태터툴즈 리더에서는 읽을 수 없는데 이것도 간단한 변환 프로그램을 통해서 (임시로) 해결할 수 있다. 모두 iconv() 함수를 이용하는 방법이라 iconv를 지원하지 않는 서버에서는 사용할 수 없다. (예를 들면 80PORT 등)
먼저 UTF-8로 제공되는 RSS를 태터 리더에서 읽으려면,
1. 우선 HTTP 접속하는 PHP 클래스 여기 있는 http.php 파일을 받아서 계정에 올려놓고
2. 같은 경로에 아래의 코드를 utf8rss.php 등의 이름으로 저장한다
<?
include "http.php";
header("Content-type: text/xml");
preg_match("/^(http:\\/\\/)?([A-Za-z0-9.]+)(\\/.*)/", $_GET["uri"], $matches);
$h = new http($matches[2], 80);
$h->setTarget($matches[3]);
$h->sendData();
echo iconv("UTF-8", "CP949//IGNORE", preg_replace("/encoding=\"UTF-8\"/i", "encoding=\"EUC-KR\"", $h->getBody()));
$h->close();
?>
include "http.php";
header("Content-type: text/xml");
preg_match("/^(http:\\/\\/)?([A-Za-z0-9.]+)(\\/.*)/", $_GET["uri"], $matches);
$h = new http($matches[2], 80);
$h->setTarget($matches[3]);
$h->sendData();
echo iconv("UTF-8", "CP949//IGNORE", preg_replace("/encoding=\"UTF-8\"/i", "encoding=\"EUC-KR\"", $h->getBody()));
$h->close();
?>
3. 원래의 RSS 주소가 http://foo.com/index.xml 이고 위에서 작성한 utf8rss.php 파일의 경로가 http://mydomain.com/utf8rss.php 라면 태터툴즈 리더 주소록에 이렇게 등록하면 끝이다.
http://mydomain.com/utf8rss.php?uri=http://foo.com/index.xml
어디까지나 임시방편이므로 에러처리 부분은 넣지 않았다. hof님 블로그가 UTF-8로 바뀐 뒤로 계속 써오는 동안 별다른 에러는 없었으니 크게 걱정할 부분은 안되겠지만.. 다시한번 강조하지만 이건 임시방편..;
그리고 태터툴즈에서 UTF-8 블로그로 트랙백을 보내는 방법
1. 태터툴즈 admin/article_trackback_pop.php 파일 100번째줄에 아래의 내용을 끼워넣는다.
<table cellpadding="0" cellspacing="0" style="margin-bottom:5"><tr>
<td width="80" align="right" style="padding-top:3">인코딩 :: </td>
<td style="padding-top:3">
<input type="radio" name="encoding" id="encoding1" value="euc-kr" checked>
<label for="encoding1">기본값</label>
<input type="radio" name="encoding" id="encoding2" value="utf-8">
<label for="encoding2">UTF-8</label>
</td>
</tr></table>
<td width="80" align="right" style="padding-top:3">인코딩 :: </td>
<td style="padding-top:3">
<input type="radio" name="encoding" id="encoding1" value="euc-kr" checked>
<label for="encoding1">기본값</label>
<input type="radio" name="encoding" id="encoding2" value="utf-8">
<label for="encoding2">UTF-8</label>
</td>
</tr></table>
2. 이번엔 39번째줄에서 아래 문장을 찾아,
$data ="url=".rawurlencode($plink)."&title=".rawurlencode($title)."&blog_name=".rawurlencode($p_title)."&excerpt=".rawurlencode($body);
위 문장 바로 위에 아래의 내용을 추가하면 작업 끝.
if( $encoding == "utf-8" )
{
$plink = iconv("EUC-KR", "UTF-8//IGNORE", $plink);
$title = iconv("EUC-KR", "UTF-8//IGNORE", $title);
$p_title = iconv("EUC-KR", "UTF-8//IGNORE", $p_title);
$body = iconv("EUC-KR", "UTF-8//IGNORE", $body);
}
위 문장 바로 위에 아래의 내용을 추가하면 작업 끝.
if( $encoding == "utf-8" )
{
$plink = iconv("EUC-KR", "UTF-8//IGNORE", $plink);
$title = iconv("EUC-KR", "UTF-8//IGNORE", $title);
$p_title = iconv("EUC-KR", "UTF-8//IGNORE", $p_title);
$body = iconv("EUC-KR", "UTF-8//IGNORE", $body);
}
이제 UTF-8 블로그에 트랙백을 보낼때 인코딩 항목에서 UTF-8을 체크한 후 SEND 하면 된다.
'컴퓨터 얘기 > 프로그래밍' 카테고리의 다른 글
| 날씨를 보여주는 자바스크립트 (6) | 2005/04/27 |
|---|---|
| 200년 달력 (0) | 2005/04/19 |
| 태터툴즈 고쳐쓰기 #11 - UTF-8 RSS 읽기, 트랙백 보내기 (10) | 2005/04/02 |
| 태터툴즈 검색어 통계 (34) | 2005/03/24 |
| 단어사용 빈도 분석 (6) | 2005/03/18 |
| 태터툴즈 고쳐쓰기 #10 - 최근 리퍼러 보여주기 (3) | 2005/02/24 |
태그 : 태터툴즈