Тот парсер ещё не дописан, а вот рабочий парсер(локально).
На продакшене не работает.
if ( preg_match('/\<tbody.*sContent[^>]*\>(.*)\<\/tbody\>/isuU', $content, $tbody) ) {
$content = $tbody[1];
$tbody_exists = true;
}
if ( $tbody_exists && preg_match_all('/\<tr.*[^>]*\>(.*)\<\/tr\>/isuU', $content, $matches) ) {
foreach ($matches[1] as $tr) {
$item = new stdClass();
$item->created = time();
if ( preg_match_all('/\<td[^>]*\>(.*)\<\/td\>/isuU', $tr, $tds) ) {
preg_match('/(\d{2}\:\d{2}).*(\d{2}\.\d{2})/', date_to_en($tds[1][5]), $date);
if ( count($date) == 3 ) {
$item->departure_date = strtotime($date[2].'.'.date('Y').' '.$date[1]);
$item->departure_time_board = $item->departure_date;
} else {
$item->departure_time_board = $item->departure_date = 0;
}
preg_match('/(\d{2}\:\d{2}).*(\d{2}\.\d{2})/', date_to_en($tds[1][6]), $date);
if ( count($date) == 3 ) {
$item->departure_time_calculated = strtotime($date[2].'.'.date('Y').' '.$date[1]);
} else {
$item->departure_time_calculated = 0;
}
preg_match('/(\d{2}\:\d{2}).*(\d{2}\.\d{2})/', date_to_en($tds[1][7]), $date);
if ( count($date) == 3 ) {
$item->departure_time_fact = strtotime($date[2].'.'.date('Y').' '.$date[1]);
} else {
$item->departure_time_fact = 0;
}
$item->arrival_date = 0;
$item->arrival_time_board = 0;
$item->arrival_time_fact = 0;
$item->arrival_time_calculated = 0;
$item->no = strip_tags($tds[1][0]);
$item->airport_departure = '***';
$item->airport_arrival = strip_tags($tds[1][3]);
$item->terminal_arrival = '';
$item->terminal_departure = strip_tags($tds[1][8]);
$item->status_id = strip_tags($tds[1][4]);
$item->link = '';
$item->notes = '(com_name='.strip_tags($tds[1][1]).') (stoyka='.strip_tags($tds[1][9]).')';
$item->source_id =
$item->status = 'новый 48час';
$item->robots_id = 0;
$item->source_id = 101;
$all_items[] = $item;
}
}
}