curl_exec с utf-8? - PullRequest
       9

curl_exec с utf-8?

1 голос
/ 11 февраля 2011

Эй, ребята, немецкий сайт о погоде предоставляет виджет погоды для владельцев сайтов. Этот виджет отлично работает с немецким Umlaute, как äöü. Однако этот виджет плохо спроектирован, поэтому я использую curl и xpath для запроса информации, которую предоставляет этот виджет погоды. Виджет погоды - это набор таблиц и элементов div со встроенными стилями, и я использую xpath, чтобы просто получить значения внутри таблицы td.

Все отлично работает, кроме немецкого Umlaute, как äöü. Мой веб-сайт использует кодировку utf-8, поэтому все эти Umlaute должны работать правильно (как и на остальной части страницы). Даже когда я обычно размещаю виджет погоды на моем сайте, он работает с этими Umlaute.

Однако, как только я использую curl для получения значений внутри таблицы, Umlaute не работает и преобразуется в странные символы.

<?php
$url = 'http://www.weatherxyz.com/hptool/wordpress_v1.php?cid=43Xv1a0&l=de';

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);

$str = curl_exec($curl);

$dom = new DOMDocument;
$dom->loadHTML($str);
$xpath = new DOMXPath($dom);

$tds = $xpath->query('//div/table/tr/td');
foreach ($tds as $key => $cell) {
        echo $cell->textContent;
}
?>

Ребята, вы понимаете, как я могу сделать эту работу?

Ответы [ 2 ]

1 голос
/ 11 февраля 2011

Похоже, вы не одиноки в словах о DOMDocument, не понимающих разные кодировки. Специальный плакат включает в себя SmartDOMDocument , чтобы отменить некоторые из его плохой реализации.

0 голосов
/ 11 февраля 2011

Проверьте кодировку страницы и перекодируйте соответственно в utf8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...