function extract_bet($Html) { $Html = kill_tag_bound($Html, 'b|a|font|img'); $Html = str_ireplace('\'style', '\' style', $Html); $Html = str_ireplace('nowrap', '', $Html); $Html = kill_space($Html); $Html = numbering_tag($Html, 'table'); $Html = extract_numbered_tags($Html, 'table', "\r\n", 'width=\'70%\''); $Html = kill_property($Html, "onmousemove|onmouseout|valign|align|class|style|height|width|cellpadding|cellspacing|border"); $Html = kill_property($Html, 'TagNo'); // раскрываем таблицы в дате и заголовках for ($i = 2; $i < 20; $i++) { $Html = str_ireplace(" colspan='{$i}'", " colspan={$i}", $Html); $Html = str_ireplace(" colspan=\"{$i}\"", " colspan={$i}", $Html); } $Html = str_ireplace('<th colspan=6><table><tr>', '', $Html); $Html = str_ireplace('</tr></table></th>', '', $Html); $Html = str_ireplace('<td colspan=6><table><tr>', '', $Html); $Html = str_ireplace('<td colspan=15><table><tr>', '', $Html); $Html = str_ireplace('</tr></table></td>', '', $Html); // убираем комментарии $Html = replace_all_contain($Html, '<tr>', '</tr>', '', 'Комментарий к событию:|Сеты'); $Html = replace_all_contain($Html, '<span>', '</span>', '', 'Вернуться'); $Html = str_ireplace('>--<', '><', $Html); // Ставим точку в виде спорта $Html = str_ireplace('><span>', '>', $Html); $Html = str_ireplace('<span>', '. ', $Html); $Html = str_ireplace('</span>', '', $Html); return $Html; }
function extract_bet($Html) { $Html = str_ireplace(' nowrap', ' ', $Html); $Html = kill_space($Html); $Html = kill_comment($Html); $Html = extract_tags($Html, '<table ', '</table>', "\r\n", 'class="OT"'); $Html = kill_tag($Html, "script"); $Html = kill_tag_bound($Html, "form|input|a|nobr|img|tbody|div"); $Html = kill_property($Html, "onmouseover|onmouseout|onclick|bgcolor|border|cellpadding|cellspacing|width|id|class"); return $Html; }
function extract_bet($Html) { $Html = copy_be($Html, '<form ', '</form>', 'betform'); $Html = kill_tag($Html, 'script|div'); $Html = kill_space($Html); $Html = kill_tag_bound($Html, 'b|span|br|i|a|input|font|img'); $Html = delete_all($Html, '<tr', '</tr>', 'line3'); $Html = kill_property_value_exclude($Html, 'class', 'line_table'); $Html = kill_property($Html, 'width|height|valign|align|bgcolor|style|border|cellspacing|cellpadding'); // Убираем "левые" данные $Html = replace_all_contain($Html, '<tr', '</tr>', '', 'Хозяева|' . 'Гости|' . 'Индив.тотал:|' . '-я четверть|' . '-я партия|' . ' тайм|' . '-й сет'); return $Html; }
function extract_bet($Html) { $Html = extract_tags($Html, '<table cellSpacing=2 cellPadding=1', '</table>', "\r\n"); $Html = kill_space($Html); $Html = kill_tag_bound($Html, 'b|a|br|font|img'); $Html = str_ireplace(' nowrap', '', $Html); $Html = kill_property($Html, 'onmouseover|onclick|align|id|style|width|cellspacing'); // Убираем строки без ставок $Html = delete_all($Html, '<tr>', '</tr>', 'class="t_comment"'); $Html = delete_all($Html, '<tr>', '</tr>', 'class="t_comment1"'); $Html = str_ireplace(' class=date', ' @lass=date', $Html); $Html = kill_property($Html, 'class'); $Html = str_ireplace(' @lass=date', ' class=date', $Html); return $Html; }
function extract_bet($Html) { $Html = extract_tags($Html, '<table ', '</table>', '', 'Дома'); $Html = kill_space($Html); $Html = str_ireplace('=>', '|', $Html); $Html = kill_comment($Html); $Html = kill_tag($Html, 'script'); $Html = kill_tag_bound($Html, 'input|b|a|img|strong'); $Html = str_ireplace('<br>', '|', $Html); $Html = str_ireplace('>-<', '><', $Html); $Html = str_ireplace(' bgcolor="#66FFFF"', ' league="#66FFFF"', $Html); $Html = kill_property($Html, 'bgcolor|align|valign|width|border|class'); $Html = replace_all_contain($Html, '<tr', '</tr>', '', 'угл |' . 'ж.к '); return $Html; }
function extract_bet($Html) { $Html = kill_space($Html); $Html = numbering_tag($Html, 'table'); $Html = extract_numbered_tags($Html, 'table', '', 'content'); $Tags = explode("\r\n", extract_tags($Html, '<table', 'height="22"', "\r\n")); foreach ($Tags as $tag) { $TagNo = extract_tagno($tag, 'table'); $Table = extract_numbered_tag($Html, 'table', $TagNo); if (stripos($Table, 'поб.1') > 0) { $Result .= $Table; } } $Html = $Result; $Html = str_ireplace('>-<', '><', $Html); $Html = kill_comment($Html); $Html = kill_tag($Html, 'script'); $Html = kill_tag_bound($Html, 'a|b|img|strong'); $Html = kill_property($Html, 'tagno|bgcolor|align|valign|width|cellspacing|border|cellpadding'); $Html = replace_all_contain($Html, '<tr', '</tr>', '', ' тайм)|' . ' тайм:|' . ' четверть:|' . '-й сет:|' . 'Дополнительные тоталы:|' . 'colspan="17"|' . 'Первый матч|' . 'Второй матч|' . 'Хозяева|' . 'Счет серии'); return $Html; }
function extract_bet($Html) { $Html = copy_be($Html, '<form name=f1', '</form>', 'Дома'); $Html = kill_space($Html); $Html = kill_tag($Html, 'script'); $Html = kill_tag_bound($Html, 'b|a|tbody|small|colgroup'); // <!-- Выносим Экспресы и информацию о предыдущих встречах --> $Html = str_ireplace('<span class=tr>1</span>', '', $Html); $Html = delete_all($Html, '<tr>', '</tr>', '<span class=tr>'); $Html = delete_all($Html, '<span class=n>', '</span>'); // <!-- Убираем строки с кнопками --> $Html = delete_all($Html, '<table ', '</table>', '<input '); // <!-- Заменяем IMG с информацией на igif для последующего удаления --> $Html = replace_all($Html, '<img ', '>', "igif"); // <!-- Убираем левые коэффициенты в скобках --> $Html = replace_all($Html, '>(', ')', '>'); // <!-- Убираем оглавление --> $Html = delete_all($Html, "<div ", "</div", "Оглавление"); $Html = kill_property($Html, 'width|border'); $Html = replace_all_contain($Html, '<tr', '</tr>', '', '>Хозяева|' . '>Гости|' . '>Фолы|' . '>ж/к|' . '>угл.'); return $Html; }
function extract_bet($Html) { $Html = delete_all($Html, "(at ", ")"); $Html = delete_all($Html, "(score: ", ")"); $Html = str_ireplace('<wbr/>', '', $Html); $Html = str_replace("-.--", " ", $Html); $Html = kill_tag($Html, "h1|script"); $Html = kill_space($Html); $Html = kill_comment($Html); $Html = numbering_tag($Html, 'div'); $Html = extract_numbered_tags($Html, 'div', "", "bet-list"); $Html = extract_numbered_tags($Html, 'div', "", "dsBodyContent"); $Html = kill_property($Html, 'TagNo'); $Html = kill_property($Html, "onmouseover|onmouseout|onclick|bgcolor|border|cellpadding|leaguename|id|width|cellspacing|regionname"); $Html = kill_property_value($Html, "colspan", "1"); $Html = kill_tag_bound($Html, "form|input|a|nobr|img|tbody|span"); $Html = delete_all($Html, ' class="unselected ', '"'); $Html = delete_all($Html, ' class=\'unselected ', '\''); $Html = replace_all_contain($Html, '<div', '</div>', '', 'isFavourite|' . 'isNoFavourite'); $Html = replace_all_contain($Html, '<tr', '</tr>', '', 'sizer|' . 'bottomline'); $Html = kill_property_value_exclude($Html, "class", "controlHeaderNoShadow|topbar|normal|def|alt|ControlContent"); $Html = str_ireplace('<td></td>', '<td/>', $Html); $Html = kill_unclassed_tag($Html, 'div'); $Html = kill_apostrof($Html, 'colspan'); // !-- Приводим Totalы к нормальному виду --> $Html = replace_all($Html, "<h5>Сумма набранных очков ", '</h5>', '<h5>Total</h5>'); $Html = replace_all($Html, "<h5>Тотал ", '</h5>', '<h5>Total</h5>'); $Html = replace_all($Html, "<h5>Сколько будет забито голов?", '</h5>', '<h5>Total</h5>'); $Html = replace_all($Html, "<h5>Сколько голов будет забито?", '</h5>', '<h5>Total</h5>'); $Html = replace_all($Html, "<h5>Сколько геймов будет сыграно в матче?", '</h5>', '<h5>Total</h5>'); $Html = replace_all($Html, "<h5>Кто выиграет больше геймов в матче? (гандикап игрока)", '</h5>', '<h5>Fora</h5>'); $Html = replace_all($Html, "<h5>Двойной шанс", '</h5>', '<h5>1X_12_X2</h5>'); $Html = str_ireplace('<tr class="alt"', "\r\n" . '<tr class="alt"', $Html); $Html = str_ireplace('<tr class="def"', "\r\n" . '<tr class="alt"', $Html); $Tags = explode("\r\n", $Html); foreach ($Tags as $tag) { if (copy_be($tag, '>', '<', ' - ', ' - ', ':')) { $Html = str_ireplace("\r\n" . $tag, str_ireplace('="alt"', '="evn"', $tag), $Html); } } $Tags = explode("\r\n", $Html); foreach ($Tags as $tag) { if (strpos($tag, '"alt"')) { $newtag = numbering_tag($tag, 'tr'); $trAlt = extract_numbered_tags($newtag, 'tr', '', 'alt'); $h5 = delete_all($trAlt, '<', '>'); if (strpos($h5, ' ')) { $newtag = str_replace($trAlt, '', $newtag); $Normals = explode("\r\n", extract_numbered_tags($newtag, 'tr', "\r\n", 'normal')); foreach ($Normals as $normal) { $newtag = str_replace($normal, '', $newtag); } $newtag = kill_property($newtag, 'TagNo'); $Html = str_replace($tag, $newtag, $Html); } } } $Html = str_ireplace("\r\n", '', $Html); $Html = str_ireplace('<tr class="evn"', "\r\n" . '<tr class="evn"', $Html); $Tags = explode("\r\n", $Html); foreach ($Tags as $tag) { if (strpos($tag, '"evn"')) { $newtag = numbering_tag($tag, 'tr'); $trEvn = extract_numbered_tags($newtag, 'tr', '', 'evn'); if (strpos($newtag, '="normal"') == 0) { $newtag = str_replace($trEvn, '', $newtag); } $newtag = kill_property($newtag, 'TagNo'); $Html = str_replace($tag, $newtag, $Html); } } $Html = str_ireplace("\r\n", '', $Html); return $Html; }
private function extract_bets(&$tournir_node, $html, $sport_sign, $tournir_id) { $this->extract_header($sport_sign); $html = kill_space($html); $html = numbering_tag($html, 'ul'); $events = extract_all_numbered_tags($html, 'ul', 'e-td '); foreach ($events as $event) { $this->extract_main_bets(&$tournir_node, $event, $sport_sign, $tournir_id); } $events = extract_all_numbered_tags($html, 'ul', 'e-r '); foreach ($events as $event) { $this->extract_extra_bets(&$tournir_node, $event, $sport_sign, $tournir_id); } }
private function extract_events(&$tournir_node, $html, $sport_sign, $tournir_id) { $html = copy_be($html, '<table', '</table>', 'class=date'); $html = kill_space($html); $tbodies = extract_all_tags($html, '<tbody', '</tbody>'); foreach ($tbodies as $tbody) { $tbody_class = copy_be($tbody, '<', '>'); $tbody_class = str_ireplace('id=', 'class=', $tbody_class); $tbody_class = extract_property_values($tbody_class, 'class', ''); if ($tbody_class == 'date') { list($this->day_no, $this->month_no, $this->year_no) = $this->decode_date($tbody); } elseif ($tbody_class == 'chead') { $this->extract_header($sport_sign, $tbody); } elseif ($tbody_class == 'line') { if ($sport_sign == 'tennis') { $this->extract_main_bets_tennis($tournir_node, $tbody, $sport_sign, $tournir_id); } elseif ($sport_sign == 'soccer') { $this->extract_main_bets_soccer($tournir_node, $tbody, $sport_sign, $tournir_id); } } } }
private function extract_bets(&$tournir_node, $html, $sport_sign, $tournir_id) { $html = kill_space($html); $html = numbering_tag($html, 'table'); $tables = extract_all_numbered_tags($html, 'table', "foot-market"); foreach ($tables as $table) { $this->extract_header($table, $sport_sign); $this->extract_main_bets($tournir_node, $table, $sport_sign, $tournir_id); } }
function extract_bets_foratotal(&$tournir_node, $html, $sport_sign, $tournir_id, $category_id) { $i = 0; $filename_headers = "phrases/bwin/{$sport_sign}.headers.txt"; $filename_labels = "phrases/bwin/{$sport_sign}.labels.txt"; $phrases_headers = file_get_hash($filename_headers); $phrases_labels = file_get_hash($filename_labels); $html = kill_space($html); $html = numbering_tag($html, 'tr'); $table_rows = extract_all_numbered_tags($html, 'tr', 'class'); // file_put_contents("lines/bwin/$tournir_id.Total.html", $html); foreach ($table_rows as $row) { $row = kill_property($row, 'TagNo'); $header = copy_be($row, '<tr', '>'); $row_class_name = extract_property_values($header, 'class', null); if ($row_class_name == 'topbar') { // разбираем дату $row = copy_between($row, '<h3>', '</h3>'); list($day_no, $month_no, $year_no) = decode_date($row); } elseif (in_array($row_class_name, array('def', 'alt'))) { // игроки + время if (preg_match('/<td.*>(<h4>)*?(.+) - (.+) - (\\d{1,2}:\\d\\d (PM|AM))(.*?)(<\\/h4>)*?</Ui', $row, $matches)) { $gamer1_name = utf8_to_ansi_ce($matches[2]); $gamer2_name = utf8_to_ansi_ce($matches[3]); list($hour, $minute) = decode_time($matches[4]); } elseif (preg_match('/<td.*>(<h5>)*?(.+)(<\\/h5>)*?</iU', $row, $matches)) { $phrase = utf8_to_ansi_ce($matches[2]); unset($bettype); $phrase = str_ireplace($gamer1_name, 'Gamer1', $phrase); $phrase = str_ireplace($gamer2_name, 'Gamer2', $phrase); $bettype_str = $phrases_headers[$phrase]; if ($bettype_str) { foreach (explode(';', $bettype_str) as $bet_pair) { list($key, $value) = explode('=', $bet_pair); $bettype[$key] = $value; } } else { $bettype['Modifier'] = 'Unknown'; $phrases_headers[$phrase] = 'Modifier=Unknown'; $phrases_headers_modified = true; } } } elseif ($row_class_name == 'normal' and $bettype) { // основная ставка if (!in_array($bettype['Modifier'], array('Ignore', 'Unknown'))) { $tables = extract_all_tags($row, '<table', '</table>'); foreach ($tables as $table) { list($label, $koef) = extract_label_koef($table); $label = str_ireplace($gamer1_name, 'Gamer1', $label); $label = str_ireplace($gamer2_name, 'Gamer2', $label); // подбираем формат фразы метки $modifier = $phrases_labels[$label]; if ($modifier) { foreach (explode(';', $modifier) as $bet_pair) { list($key, $value) = explode('=', $bet_pair); $bettype[$key] = $value; } } else { $bettype['Modifier'] = 'Unknown'; $phrases_labels[$label] = 'Modifier=Unknown'; $phrases_labels_modified = true; } if (!in_array($bettype['Modifier'], array('Ignore', 'Unknown'))) { $event_node = event_find_or_create($tournir_node, mktime($hour, $minute, 0, $month_no, $day_no, $year_no), $gamer1_name, $gamer2_name); $bet_node = $event_node->addChild('Bet'); foreach ($bettype as $key => $value) { $bet_node->addAttribute($key, $value); } $bet_node->addAttribute('Koef', $koef); } unset($bettype['Modifier']); } } } $i++; } // отбираем новые и складываем их в новый файл if ($phrases_headers_modified) { $file_hash = file_get_hash($filename_headers); foreach ($file_hash as $key => $value) { unset($phrases_headers[$key]); } file_put_hash($filename_headers . '.new', $phrases_headers + file_get_hash($filename_headers . '.new')); } if ($phrases_labels_modified) { $file_hash = file_get_hash($filename_labels); foreach ($file_hash as $key => $value) { unset($phrases_labels[$key]); } file_put_hash($filename_labels . '.new', $phrases_labels + file_get_hash($filename_labels . '.new')); } }