我需要從網頁刮一些數據。但是,我有一些高級的編碼問題。PHP DOMXPath編碼
這裏只是一個利特爾示例代碼顯示在德國知名網頁的麻煩。
我預計從網頁得到這樣的文字:
所有的批評者被拉伸的面貌,因爲沃爾夫斯堡沃爾夫的被裏朝外強。科隆可以借鑑他們的利益?
但你可以在我的測試中看到的,我得到這樣的:
所有的批評者被拉長看沃爾夫斯堡,因爲沃爾夫翻過來大力。在Kölner可以借鑑他們的利益?
網頁的meta標籤說,這樣做是爲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>";
}
?>
謝謝,這就是我一直在尋找:) – Urkman