Есть парсер который парсит и добовляет в базу данных контент с кинопоиска. Вот только есть пару ошибок.
Он парсит строки: жанр, сборы в США, сборы в мире, сборы в России. Проблема в том что в конце жанра: ", ... слова".
И еще хотелось бы чтоб он парсил и трейлер. Есть тут те кто смогут в этом помочь? В долгу не останусь!
# Парсим информацию по фильму:
preg_match_all('#<title>(.*)</title>#isU', $content, $title);
preg_match_all('#<table class="info">(.*)</table>#isU', $content, $result);
preg_match_all('#<tr>(.*)</td>(.*)</tr>#isU', $result[0][0], $result);
preg_match_all('#<div class="brand_words" itemprop="description">(.*)</div>#isU', $content, $anonce);
preg_match_all('#<title>(.*)</title>#isU', $content, $title);
$write['title'] = $title[1][0];
$write['title'] = iconv('windows-1251','utf-8',$write['title']);
$write['anonce'] = str_replace(' ', ' ', strip_tags($anonce[1][0]));
$write['anonce'] = iconv('windows-1251','utf-8',$write['anonce']);
# Сохраняем данные в xml:
$xml = new DOMDocument('1.0','UTF-8');
$film = $xml->appendChild($xml->createElement('film'));
$title = $film->appendChild($xml->createElement('title'));
$title->appendChild($xml->createCDATASection($write['title']));
$date = $film->appendChild($xml->createElement('date'));
$date->appendChild($xml->createCDATASection(time()));
for($i=0;$i<count($result[0]);$i++){
$write['key'] = trim(strip_tags($result[1][$i]));
$write['value'] = trim(str_replace(' ','',strip_tags($result[2][$i])));
if($write['key'] == 'год'){$write['value'] = substr($write['value'],0,4);}
$write['key'] = iconv('windows-1251','utf-8', $write['key']);
$write['value'] = iconv('windows-1251','utf-8', $write['value']);
$buffer = '';
$write['value'] = explode(",",$write['value']);
for($o=0;$o<count($write['value']);$o++){
$buffer .= trim($write['value'][$o]).', ';
}
$buffer = str_replace('..., ','', $buffer);
$buffer = substr($buffer,0,-2);
$write['value'] = $buffer;
$info = $film->appendChild($xml->createElement('info'));
$key = $info->appendChild($xml->createElement('key'));
$key->appendChild($xml->createCDATASection($write['key']));
$value = $info->appendChild($xml->createElement('value'));
$value->appendChild($xml->createCDATASection($write['value']));
}
$anonce = $film->appendChild($xml->createElement('anonce'));
$anonce->appendChild($xml->createCDATASection($write['anonce']));
$xml->formatOutput = true;
$xml->save('./base/'.$_POST['id'].'.xml');