Webページからいくつかのデータを取得する必要があります。しかし、私はそれにいくつかのエンコーディングの問題があります。
これは、よく知られているドイツのWebページで問題を示すためのほんの少しのサンプルコードです。
私はこのテキストをウェブページから取得することを期待していました:
Alle Kritiker werden gespannt nach Wolfsburg schauen、dennderVfLwurdekräftigumgekrempelt。KönnendieKölnerdarausihrenNutzenziehen?
しかし、私のテストでわかるように、私はこれを取得します:
Alle Kritiker werden gespannt nach Wolfsburg schauen、dennderVfLwurdekräftigumgekrempelt。KönnendieKölnerdarausihrenNutzenziehen?
このページのメタタグは、UTF-8でエンコードされていることを示しています...
また、mb_detect_encodingは、UTF-8であることも示しています。
しかし、なぜ私はこのくだらないテキストを取り戻すのですか?
そして、テキストをISO-8859-1に変換すると、期待どおりの結果が得られます...
<?php
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
$url = "http://www.goal.com/de/match/60952/wolfsburg-vs-1-fc-k%C3%B6ln/preview";
$fileContent = @file_get_contents($url);
$dom = @DOMDocument::loadHTML($fileContent);
$xpath = new DOMXpath($dom);
$element = $xpath->query(".//*[@id='article_headline']/h2");
if ($element->length > 0) {
$item = $element->item(0);
$text = $item->textContent;
echo $text . "<br>";
$text = iconv("UTF-8", 'ISO-8859-1', $text);
echo $text . "<br>";
}
?>