PDA

Просмотр полной версии : PHP.Как извлечь данные с сайта


Moldman
12.04.2009, 11:11
Как извлечь данные которые находятся между двумя конкретными строками,а потом вывести их не нарушив их структуру в HTML?

m0Hze
12.04.2009, 11:13
preg_match();
echo();

Moldman
12.04.2009, 11:16
m0Hze,можно конкретный пример?

rushter
12.04.2009, 11:17
Учи регулярки
http://pyha.ru/forum/topic/19.0

Gar|k
12.04.2009, 12:13
тотже вопрос только что тут задавался
выложил пример на Perl

http://forum.antichat.ru/thread115501.html

Sharky
12.04.2009, 13:29
file_get_contents + preg_match_all + print_r (ну или echo)

Gar|k
12.04.2009, 15:57
Moldman, ты просил пример
я на php не писал подобные парсеры но смысл в чем

смотри мой пример по ссылке выше
получаешь контекст сайта или через fsockopen

<?php
$fp = fsockopen ("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
fputs ($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\n\r\n");
while (!feof($fp)) {
echo fgets ($fp,128);

// тут обработку надо вставить

}
fclose ($fp);
}
?>

можно и через file
тебе много функций сказали

<?php
// получить web-страницу в виде массива и напечатать его
$fcontents = file ('http://www.example.com/');
while (list ($line_num, $line) = each ($fcontents)) {
echo "<b>Line $line_num:</b>; ", htmlspecialchars ($line), "<br>\n";
}

// получить web-страницу в строке
$fcontents = implode ('', file ('http://www.example.com/'));
?>

вот и в цикле через регулярки (http://www.phpclub.net/manrus/pcre.pattern.syntax.html) построчно парсишь ... опять же функции тебе сказали preg_***

примеры регулярок и как применяется это смотри в моем приере на perl там это пишется через $s=~/регулярка/ (эквивалент preg_grep)

Удаче, товаришь!