타 사이트 게시판 내용을 파싱해오려고 하는데 내용을 일부분만 파싱해옵니다.
본문
안녕하세요.
네이버 블로그에서 '외부 사이트 긁어와서 XE에 자동으로 글 쓰기'를 보고 적용중에 있는데, 외부 사이트의 게시물 제목을 긁어와서 글 쓰기까지 잘 되고 있습니다.
그런데 제목은 잘 받아와지는데, 게시글 내용을 제대로 받아오질 못하고 있습니다.
(내용을 일부분만 짤려서 받아오고 있습니다.)
$l_content1 = explode('<td class="black" style="padding-left:10px">',$l_title1[1]);
$l_content2 = explode('<br><td>',$l_content1[1]);
$l_content = $l_content2[0];
위와같이 <td class="black" style="padding-left:10px"> 부분부터 시작하여 <br><td> 까지 사이의 내용을 긁어와야 하는데 긁어오는 내용이 일부분만 보입니다.
원인을 파악해 보니 소스보기를 통해 보았을 때 엔터때문에 단락이 끊어질 경우, 엔터를 쳐서 단락이 끊어진 그 직전까지만 내용이 불러와지고 그 다음부터의 내용을 긁어오지 못하는것 같습니다.
어느부분을 어떻게 수정해야 할지 도움주시면 정말 감사드리겠습니다.
(중간에 엔터가 쳐져서 단락이 바뀐것을 무시하도록 하면 될것 같은데 방법을 몰라서 이렇게 문의드립니다.)
해당 소스 전체도 같이 올립니다.
고수님들의 도움을 간곡히 부탁드립니다.!
네이버 블로그에서 '외부 사이트 긁어와서 XE에 자동으로 글 쓰기'를 보고 적용중에 있는데, 외부 사이트의 게시물 제목을 긁어와서 글 쓰기까지 잘 되고 있습니다.
그런데 제목은 잘 받아와지는데, 게시글 내용을 제대로 받아오질 못하고 있습니다.
(내용을 일부분만 짤려서 받아오고 있습니다.)
$l_content1 = explode('<td class="black" style="padding-left:10px">',$l_title1[1]);
$l_content2 = explode('<br><td>',$l_content1[1]);
$l_content = $l_content2[0];
위와같이 <td class="black" style="padding-left:10px"> 부분부터 시작하여 <br><td> 까지 사이의 내용을 긁어와야 하는데 긁어오는 내용이 일부분만 보입니다.
원인을 파악해 보니 소스보기를 통해 보았을 때 엔터때문에 단락이 끊어질 경우, 엔터를 쳐서 단락이 끊어진 그 직전까지만 내용이 불러와지고 그 다음부터의 내용을 긁어오지 못하는것 같습니다.
어느부분을 어떻게 수정해야 할지 도움주시면 정말 감사드리겠습니다.
(중간에 엔터가 쳐져서 단락이 바뀐것을 무시하도록 하면 될것 같은데 방법을 몰라서 이렇게 문의드립니다.)
해당 소스 전체도 같이 올립니다.
고수님들의 도움을 간곡히 부탁드립니다.!
<?php
//requires xmlrpc.inc from http://phpxmlrpc.sourceforge.net/
//!!중요!! xmlrpc파일이 필요함, 위 주소로 가서 zip파일을 다운로드, 압축해제후 lib폴더에 있는 xmlrpc.inc파일을 넣어주세요.
//아 그리고, xe에서 애드온 메뉴에서 블로그api 기능의 기본설정이 off되어있는데 그걸 on 해주셔야 작동되겠죠?
require_once('xmlrpc.inc');
$g_blog_url = "http://www.*******.com/xe/board/api";
$g_id = "***********";
$g_passwd = "************";
$GLOBALS['xmlrpc_internalencoding'] = 'UTF-8';
function metaWeblog_newPost( $blogid, $title, $content)
{
global $g_id;
global $g_passwd;
global $g_blog_url;
$client = new xmlrpc_client( "{$g_blog_url}");
$f = new xmlrpcmsg("metaWeblog.newPost", // metaWeblog.newPost method
array(
new xmlrpcval("{$blogid}", "string"), // blogid.
new xmlrpcval($g_id, "string"), // user ID.
new xmlrpcval($g_passwd, "string"), // password
new xmlrpcval( // body
array(
'title' => new xmlrpcval($title, "string"),
'description' => new xmlrpcval($content, "string"),
), "struct"),
new xmlrpcval(true, "boolean") // publish
)
);
$f->request_charset_encoding = 'UTF-8';
$response = $client->send($f);
echo $blogid.$title.$content;
}
include "Snoopy.class.php";
$s=new snoopy;
$s->fetch('http://********.com/******=3300'); //긁을주소
$txt=$s->results;
$ex=explode('<td class="red_01" style="padding-left:10px">',$txt); //제목
for($i=1;$i<sizeof($ex);$i++){
$l_title1 = explode('</td>',$ex[$i]);
$l_title = $l_title1[0];
$l_content1 = explode('<td class="black" style="padding-left:10px">',$l_title1[1]);
$l_content2 = explode('<br><td>',$l_content1[1]);
$l_content = $l_content2[0];
$blogid="**************";
$title= $l_title;
$content= $l_content;
metaWeblog_newPost( $blogid, $title, $content);
}//for문
?>
답변을 작성하시기 전에 로그인 해주세요.