|
|
|
| Здравствуйте. Вот, хочу у себя на страничке разместить турнирную таблицу по футболу. Так, чтобы она загружалась с чужого сайта, но с моим дизайном. Если можно, то попроще. Помогите, пожалуйста. | |
|
|
|
|
|
|
|
для: gumplen
(14.09.2007 в 20:19)
| | А админ чужого сайта согласен на это?)
ну блин чуть ли не каждый день вижу такие сообщения в поиск лучше проследуй.
Если админ не согласен и злой(блин из-за таких приходится искать классы для работы с соксами, чекеры...), то будет сложно импортировать ибо соксы придётся использовать....
Но надеюсь до этого дело не дайдёт.
В среднестатистическом случае схема состоит из 2 пунктов:
1)взять контент:
а)file_get_contents
б)curl
в)fsockopen
2)его распарсить регулярными выражениями
Сразу скажу для новичка сложно... Придётся попарится. Но если php интересен то велком)
По ходу написания если возникнут вопросы пиши! | |
|
|
|
|
|
|
|
для: gumplen
(14.09.2007 в 20:19)
| | + Если эту таблицу можно получить через XML (RSS) то все еще проще=) | |
|
|
|
|
|
|
|
для: Poison
(14.09.2007 в 21:04)
| | не заметил разницы между парсингом XML и обычного сайта)))))
в чём она? | |
|
|
|
|
|
|
|
для: tricket
(14.09.2007 в 21:06)
| | Посидел, и сделал вот такое чудо:
<?
@$content=file_get_contents('http://metallist.kharkov.ua/champ/table/');
@$first=explode("<td valign=top bgcolor=000099>",$content);
@$second=explode("</tr></table></td></tr></table>",$first[1]);
if (!$second[0])
echo "Извините, выбраная вами страница временно недоступна";
else
echo $second[0];
?>
|
Прокомментируйте, пожалуйста.
И еще, в этом случае получается таблица, как на сайте-доноре. Как бы мне ее изменить под свой дизайн? | |
|
|
|
|
|
|
|
для: gumplen
(14.09.2007 в 23:18)
| | Собаку ставь перед функцией
<?
$content = @file_get_contents('http://metallist.kharkov.ua/champ/table/');
$first = @explode('<td valign=top bgcolor=000099>',$content);
$second = @explode('</tr></table></td></tr></table>',$first[1]);
if (!$second[0])
{
echo 'Извините, выбраная вами страница временно недоступна';
}
else
{
echo $second[0];
}
?>
|
| |
|
|
|
|
|
|
|
для: gumplen
(14.09.2007 в 23:18)
| | Ну изменить дизайн это чудеса, а на них способны регулярки!
я бы сделал так:
<?
$content=file_get_contents('http://metallist.kharkov.ua/champ/table/');
$pattern_table = "|<table[\s]cellpadding=1[\s]cellspacing=1[\s]width=100%[\s]border=0[\s]class=news>.*</table>|isU";
preg_match_all($pattern_table, $content, $res_table);
$pattern_strockka = "|<tr([\s]bgcolor=[^>]*?)?><th>(<b>)?[0-9]*?(</b>)?</th>.*</tr>|isU";
preg_match_all($pattern_strockka, $res_table[0][0], $res_strocka);
$res_ar=array();
$n=1;
foreach($res_strocka[0] as $key=>$value){
$pattern_dan = "|<nobr>([^<]*)</th><th>([^<]*)</th><th>([^<]*)</th><th>([^<]*)</th><th>([^<]*)</th><th>([^<]*)</th>|isU";
preg_match_all($pattern_dan, $value, $res);
$res_ar[$n]=array();
$res_ar[$n][]=$res[1][0];
$res_ar[$n][]=$res[2][0];
$res_ar[$n][]=$res[3][0];
$res_ar[$n][]=$res[4][0];
$res_ar[$n][]=$res[5][0];
$res_ar[$n][]=$res[6][0];
$n++;
}
print_r($res_ar);
?>
|
Вместо print_r($res_ar); занеси данные в БД. Из которой выводить будешь их. Плюс сделай крон который каждые n минут будет выполнять етот скрипт, где n-частота обновления исходной страницы!
ЗЫ появилась свободная минутка с любимыми регулярками поигрался)
ЗЫЫ по регуляркам отличнийшая статья http://www.nncron.ru/help/RU/add_info/regexp.htm | |
|
|
|
|
|
|
|
для: tricket
(15.09.2007 в 13:45)
| | Малость запутался с preg_match_all, но буду мучать. Спасибо. | |
|
|
|