• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

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

SPoX

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


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

я в 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);

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


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

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