Использую библиотеку DiDom
Как вообще код ? Может что то подправить что бы было оптимальнее ??
function parseHtml($response){
$document = new Document($response,false,'CP1251');
$data = array(
'title' => $document->find('title'),
'h2' => $document->find('h2'),
'block_top' => $document->find('.top'),
'block_other' => $document->find('.related h3')
);
$error_data = array();
// Записываем в массив с ошибками ключи в которых они были
foreach ($data as $key => $val){
if (count($val) < 1) {
$error_data[$key] = '0';
}
}
//Если есть ошибки смотрим какие именно и выводим в консоль либо записываем в бд лог
if (count($error_data) > 0) {
$err_log = "├ ERROR GET DATA !!!\n";
foreach ($data as $key => $val){
if (count($error_data[$key]) > 0) {
$err_log .='└ '.$key. " = " . $error_data[$key] . "\n";
}
}
App::add_debug_msg($err_log);
} else { //Если ошибок нету выводим в консоль инфу, пишем в бд и тд..
$data['title'] = $data['title'][0]->text();
$data['h2'] = $data['h2'][0]->text();
$data['block_other'] = stristr( $data['block_other'][0]->text(), '- beta.ru', true);
$data['block_top'] = $data['block_top'][0]->innerHtml();
//Обрезаем пробелы по бокам в данных массива
$data=array_map('trim',$data);
//функция записи в бд данных из $data
//......
//......
}
}