파싱 해서 가져오는 방법 질문입니다.

파싱 해서 가져오는 방법 질문입니다.

QA

파싱 해서 가져오는 방법 질문입니다.

본문

{
    "success": true,
    "start": 0,
    "limit": 20,
    "total": 99,
    "posts": [
        {
            "idx": 1,
            "bid": "notice",
            "title": "테스트 공지",
        },
        {
            "idx": 2,
            "bid": "free",
            "title": "aaaaa",
        },
        {
            "idx": 44,
            "bid": "qna",
            "title": "what?",
        }
    ]
}

 

요런 html로 정보를 받고 있습니다.

 

include "simple_html_dom.php";

 

이걸 써서 파싱을 하라고 하는데 

 

예를 들어 notice 의 글만 가져 올려고 하면 어떻게 해야 할까요?

이 질문에 댓글 쓰기 :

답변 4

$dom = new simple_html_dom();
$dom->load($html);

foreach ($dom->find('div[title]') as $post) {
    $title = $post->plaintext;
    echo "Title: $title\n";
}
$dom->clear();

 

스스로 찾아서 했습니다.

 

api로 거르는게 아니면 notice만 나온 페이지의 데이터부분 받는곳은 크롬 개발자도구로 열어서

 

그쪽 url로 들어가시면 notice만 나옵니다. 그게 없다면 안됩니다.


$tmp_data = '';
$url = "URL주소";
$tmp_data = file_get_contents_curl($url);
$tmp_data = json_decode($tmp_data);
$data = array();
foreach($tmp_data['posts'] as $k => $v){
    if($v['bid'] == 'notice') $data[] = $v;
}
print_r($data);

대략 이정도 일듯 하네요.

답변을 작성하시기 전에 로그인 해주세요.
전체 149
QA 내용 검색

회원로그인

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