2013-04-02 3 views
0

나는 this website에서 사용자 이름을 얻으려고이 내가 무슨 짓을했는지 있습니다 :(PHP) 간단한 HTML DOM 파서 : HTML 기호

$div = $html->find('div[class=micro-home-recent-review review-item]'); 
for ($i=0; $i<count($div); $i++){ 
    $username = $div[$i]->find('div[class=tooltip-fullname]', 0)->find('b', 0)->plaintext; 
    // I've tried using iconv but apparently it doesn't work 
    $username = iconv(mb_detect_encoding($username), "UTF-8", $username); 
    $query = "INSERT INTO users ('name') VALUES ($username)"; 
    $pdo->query($query); 
} 

그런 다음 내 데이터베이스에 새로 삽입 된 기록은 다음과 같습니다

당신이 볼 수 있듯이

database records

, 이름의 대부분은 브라우저에서 정상적으로 표시 할 수 있지만, JSON으로 표시 할 때 엉망 HTML 기호로 기록됩니다. 같은 문제는 내가 리뷰를 얻기 위해 시도 할 때 발생하며 아래 리뷰의 샘플 JSON입니다 :

enter image description here

내가 때문에이 문제가 해결 될 필요가 또는, JSON 내 안드로이드 응용 프로그램에서 데이터를 표시 할 필요가 데이터가 제대로 표시되지 않습니다. 이것에 대한 가능한 해결책은 무엇입니까? 나는 정말로 당신의 도움과 제안이 필요합니다.

+0

이 사이트입니까 (예 : 서버를 가지고 계신가요?) 아니면 외부 서버를 긁적니까? 사이트를 소유하지 않은 경우 귀하의 활동 주인에게 알렸습니까? – Raffaele

+0

문제와 관련이있는 것은 아니지만,이 mb_detect_encoding 사용은 매우 의심 스럽습니다. 당신이 탐지 할 수있는 인코딩은 무엇입니까? – Jon

답변

1

html_entity_decode() 기능을 사용해보십시오.

+0

** 엔티티가 소스 데이터에 존재한다면 (가능하지만 증명이 필요한 경우) ** 정확합니다. – Jon

1

htmlentities_decode()을 사용하면 문제를 해결할 수 있습니다.

관련 문제