Пишу парсер по вакансиям и столкнулся с проблемой: не могу получить нормальное содержимое toster.ru - кодировка портится где-то в DOMDocument. Ниже функция (вместо $linktocontent url тостера).
function parse($linktocontent) {
$Contents = file_get_contents($linktocontent);
if (!$Contents) {
$result['error'] = "Can't get file";
return $result;
}
$Selector = ".//*[@id='tasks_list']/div[1]/div";
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHtml($Contents);
$xpath = new DOMXPath($dom);
libxml_use_internal_errors(false);
$list = $xpath->query($Selector);
$numitems = $list->length;
for ($i=0; $i<$numitems; $i++) {
$j = $i+1;
$SelectArticle = ".//*[@id='tasks_list']/div[1]/div[".$j."]";
$SelectLink = ".//*[@id='tasks_list']/div[1]/div[".$j."]/div[@class='title']/a";
$SelectSDesc = ".//*[@id='tasks_list']/div[1]/div[".$j."]/div[@class='description']";
$result[$i]['header'] = $xpath->query($SelectLink)->item(0)->nodeValue;
$result[$i]['shortdesc'] = $xpath->query($SelectSDesc)->item(0)->nodeValue;
$result[$i]['link'] = "http://freelansim.ru".$xpath->query($SelectLink)->item(0)->attributes->getNamedItem("href")->nodeValue;
}
return $result;
}
И то, что на выходе получается:
[0]=> array(6) { ["header"]=> string(69) "ÐоÑабоÑаÑÑ PHP ÑкÑипÑ" ["shortdesc"]=> string(806) "ÐÑÑÑ php ÑкÑÐ¸Ð¿Ñ Ð¿Ð°ÑÑеÑа, ÑабоÑавÑий Ñанее Ñ ÑайÑом, но из за изменений дизайна, пеÑеÑÑавÑий ÑабоÑаÑÑ, необÑодимо иÑпÑавиÑÑ ÑкÑÐ¸Ð¿Ñ (либо напиÑаÑÑ Ð½Ð¾Ð²Ñй), Ñак, ÑÑÐ¾Ð±Ñ Ð²Ñе ÑабоÑало, плÑÑ Ð´Ð¾Ð¿Ð¸ÑаÑÑ Ð¿Ð°ÑÑ Ð½ÐµÑложнÑÑ ÑÑнкÑий (подÑобноÑÑи в лиÑкÑ)" ["link"]=> string(32) "http://freelansim.ru/tasks/49586" ["timestamp"]=> string(0) "" ["cost"]=> string(53) "5 000 ÑÑб./за пÑоекÑ" ["number"]=> string(5) "49586" }
На fl.ru с этой функцией проблем не возникает. Есть ли решение для этого случая? Сам вожусь уже полдня и ни чему не пришел