증기 시장에서 가격을 가져 오려고합니다. 이제는이 모든 것이 잘 작동하고 배열을 반환하지만 한 가지 문제가 있습니다. CS는 : 스타 중 하나가 같은 StatTrak 항목이나 칼과 같은 항목을 GO (★
또는 밸브가 "\u2605
"로 전송하는 방법) 또는 상표 로고 (™
또는 밸브를 전송하는 방법 "\u2122
")이상한 문자가 나타납니다
에게 내 배열은 볼 수 없습니다 이러한 문자로하지만,이 대신로 변환 :
â StatTrak⢠Karambit | Damascus Steel (Field-Tested)
를하지만해야합니다 :
★ StatTrak™ Karambit | Damascus Steel (Field-Tested)
이 내가 정보를 가져 오는 방법은 다음과 같습니다 당연히, 루프에서
$url = "https://steamcommunity.com/market/search/render/?query=&start=0&count=99&&search_descriptions=0&sort_column=price&sort_dir=popular&appid=730&category_730_ItemSet%5B%5D=any&category_730_ProPlayer%5B%5D=any&category_730_StickerCapsule%5B%5D=any&category_730_TournamentTeam%5B%5D=any&category_730_Weapon%5B%5D=any";
$html = file_get_contents($url);
$html = json_decode($html, true);
$html = $html['results_html'];
$dom = new DOMDocument;
@$dom->loadHTML($html);
$xpath = new DOMXpath($dom);
$itemname = $xpath->query('//span[@id="result_' . $q . '_name"]');
$itemprice = $xpath->query('//*[@id="result_' . $q . '"]/div[1]/div[2]/span[1]/span[1]');
을,하지만 그건 문제가 지금해야하지. $q
은 0-99입니다.
적절한 문자로 내용을 가져 오는 방법은 무엇입니까?
이것은 하나의 인코딩에 저장되고 다른 인코딩을 사용하여 표시되는 문자 인 모기 베크의 고전적인 사례처럼 보입니다. 페이지의 문자 인코딩이 올바르게 설정되어 있는지 확인하십시오. 아마도 UTF-8을 사용해야합니다. HTML의 '
'섹션에서''을 사용하여이를 수행 할 수 있습니다. –@DaanWilmer 여러분의 반응에 감사 드리며 다음과 같이하면 해결되었습니다 :'$ html = mb_convert_encoding ($ html, 'HTML-ENTITIES', 'UTF-8');' –