Помощь как сделать простой парсер

SPoX

Мастер
Регистрация
19 Апр 2014
Сообщения
196
Реакции
32
Здравствуйте ребята
помогите сделать простой парсер


вот у меня есть таблица Бундеслиги
как сделать так чтобы таблицу можно было бы парсировать

я в PHP не очень то разбираюсь и потому не могу самостоятельно сделать

за ранее спасибо
 
Здравствуйте ребята
помогите сделать простой парсер



вот у меня есть таблица Бундеслиги
как сделать так чтобы таблицу можно было бы парсировать

я в PHP не очень то разбираюсь и потому не могу самостоятельно сделать

за ранее спасибо
Для просмотра ссылки Войди или Зарегистрируйся.
PHP:
<?php
require 'simple_html_dom.php';
$html = file_get_html('http://www.tablesleague.com/iframe?width=285&height=419&font_name=Tahoma&position=1&font_size=12&team_link=0&link_color=404040&games=1&wins=0&draws=0&lost=0&goals=0&goals_against=0&gd=0&points=1&next=0&form=0&font_size=12&font_color=000000&bg_color=FFFFFF&header_font_color=FFFFFF&header_bg_color=1fb9e4&bg_col=1fb9e4&font_color_col=FFFFFF&highlight=e3e3e3&hover=fff6bf&league_header=0&league=l_179&team=&timezone=4&language=2&team_flags=0');
foreach($html->find('div.table div.row') as $v) {
    if($v->find('div.cell', 0)->plaintext == '#') {
        continue;
    }
    $item['id']     = $v->find('div.cell', 0)->plaintext;
    $item['team_name']    = $v->find('div.cell', 1)->plaintext;
    $item['m'] = $v->find('div.cell', 2)->plaintext;
    $item['pts'] = $v->find('div.cell', 3)->plaintext;
    $articles[] = $item;
}

print_r($articles);
 
результаты такие

Код:
Array
(
[0] => Array
(
[id] => 1
[team_name] => Bayern Munchen
[m] => 1
[pts] => 3
)

[1] => Array
(
[id] => 2
[team_name] => Mainz 05
[m] => 0
[pts] => 0
)

[2] => Array
(
[id] => 3
[team_name] => Ingolstadt
[m] => 0
[pts] => 0
)

[3] => Array
(
[id] => 4
[team_name] => RasenBallsport Leipzig
[m] => 0
[pts] => 0
)

[4] => Array
(
[id] => 5
[team_name] => Hoffenheim
[m] => 0
[pts] => 0
)

[5] => Array
(
[id] => 6
[team_name] => Schalke 04
[m] => 0
[pts] => 0
)

[6] => Array
(
[id] => 7
[team_name] => Wolfsburg
[m] => 0
[pts] => 0
)

[7] => Array
(
[id] => 8
[team_name] => Hertha Berlin
[m] => 0
[pts] => 0
)

[8] => Array
(
[id] => 9
[team_name] => Freiburg
[m] => 0
[pts] => 0
)

[9] => Array
(
[id] => 10
[team_name] => Bor. Monchengladbach
[m] => 0
[pts] => 0
)

[10] => Array
(
[id] => 11
[team_name] => Bor. Dortmund
[m] => 0
[pts] => 0
)

[11] => Array
(
[id] => 12
[team_name] => Bayer Leverkusen
[m] => 0
[pts] => 0
)

[12] => Array
(
[id] => 13
[team_name] => Darmstadt
[m] => 0
[pts] => 0
)

[13] => Array
(
[id] => 14
[team_name] => Eintracht Frankfurt
[m] => 0
[pts] => 0
)

[14] => Array
(
[id] => 15
[team_name] => Augsburg
[m] => 0
[pts] => 0
)

[15] => Array
(
[id] => 16
[team_name] => FC Koln
[m] => 0
[pts] => 0
)

[16] => Array
(
[id] => 17
[team_name] => Hamburger SV
[m] => 0
[pts] => 0
)

[17] => Array
(
[id] => 18
[team_name] => Werder Bremen
[m] => 1
[pts] => 0
)

)

а нельзя сделать парсер так чтобы взять прямо html таблицу
чтобы сразу можно было вставить на сайт?

или как конвертировать этот резултат в таблицу?
 
Последнее редактирование:
PHP:
<?php
require 'simple_html_dom.php';
$html = file_get_html('http://www.tablesleague.com/iframe?width=285&height=419&font_name=Tahoma&position=1&font_size=12&team_link=0&link_color=404040&games=1&wins=0&draws=0&lost=0&goals=0&goals_against=0&gd=0&points=1&next=0&form=0&font_size=12&font_color=000000&bg_color=FFFFFF&header_font_color=FFFFFF&header_bg_color=1fb9e4&bg_col=1fb9e4&font_color_col=FFFFFF&highlight=e3e3e3&hover=fff6bf&league_header=0&league=l_179&team=&timezone=4&language=2&team_flags=0');
echo '<table>';
foreach($html->find('div.table div.row') as $v) {
    if($v->find('div.cell', 0)->plaintext == '#') {
        continue;
    }
    echo '<tr>';
    echo '<td>' . $v->find('div.cell', 0)->plaintext . '</td>';
    echo '<td>' . $v->find('div.cell', 1)->plaintext . '</td>';
    echo '<td>' . $v->find('div.cell', 2)->plaintext . '</td>';
    echo '<td>' . $v->find('div.cell', 3)->plaintext . '</td>';
    echo '</tr>';
}
echo '</table>';
P.s. Полный говнокод и я этого не писал :)
P.p.s. Данные нужно кэшировать, не надо мучать донор всеми своими посетителями - достаточно скачивать раз в N часов...
 
Последнее редактирование:
  • Нравится
Реакции: SPoX
работает прекрасно огромное спасибо

а можно как то сделать так чтобы на пример в таблице
Bayern Munchen заменить на слово Бавария

я попробовал так но не сработало
Код:
$text = preg_replace('/Bayern Munchen/', 'Бавария', $text);
 
работает прекрасно огромное спасибо

а можно как то сделать так чтобы на пример в таблице
Bayern Munchen заменить на слово Бавария

я попробовал так но не сработало
Код:
$text = preg_replace('/Bayern Munchen/', 'Бавария', $text);
Зачем использовать регулярку, если можно просто замену?
Для просмотра ссылки Войди или Зарегистрируйся
Для простой замены использовать регулярку — это как забивать гвозди микроскопом.
 
Про кэш можешь почитать тут: Для просмотра ссылки Войди или Зарегистрируйся
да я понял принцип работы огромное спасибо сначала на русском перевожу все и потом кэш сделаю :glob:


Зачем использовать регулярку, если можно просто замену?
Для просмотра ссылки Войди или Зарегистрируйся
Для простой замены использовать регулярку — это как забивать гвозди микроскопом.
подожди ты меня запутал

все сразу как перевести на русском ?
есть 18 команд все как сразу на русском языке перевести?

не понял извиняюсь :conf:
 
да я понял принцип работы огромное спасибо сначала на русском перевожу все и потом кэш сделаю :glob:



подожди ты меня запутал

все сразу как перевести на русском ?
есть 18 команд все как сразу на русском языке перевести?

не понял извиняюсь :conf:
Ну я ж тебе ссылку дал почитать про замену str_replace — он поддерживает и массивы.
 
Код:
$english= array("Bayern Munchen", "Wolfsburg", "Bor. Dortmund");
$russian= array("Бавария", "Волфсбург", "Дортмунд");

$newphrase = str_replace($english, $russian);

ссылку я прочитал и как я понял надо сделать так да?

я раньше с помощью этого кода делал и работало
Код:
$text = preg_replace('/Bayern Munchen/', 'Бавария', $text);

но то что вы написали я не смог понять где надо написать оригинальные слова и где перевод
то есть по моему понял но не смог все равно сделать


Про кэш можешь почитать тут: Для просмотра ссылки Войди или Зарегистрируйся
Кэш сделал запросто

но у меня есть вопрось а нельзя ли привязать к кэшированию ДЛЕ?
чтобы не делать новий кэш
исползовать то что есть у ДЛЕ
 
Последнее редактирование:
Назад
Сверху