Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Граббер

Сообщения:  [1-2] 

 
 автор: cheops   (08.09.2005 в 02:35)   письмо автору
 
   для: smertnik   (08.09.2005 в 02:21)
 

Это здорово зависит от сайта и от информации которая извлекается с сайта, в этом случае обычно прибегают к регулярным выражениям, которым посвящён отдельный раздел форума http://www.softtime.ru/forum/index.php?id_forum=6, где этому вопросу посвящена каждая третья тема

Вот последние темы
http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=7050
http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=7103
http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=6566

   
 
 автор: smertnik   (08.09.2005 в 02:21)   письмо автору
 
 

Подскажите как можно считать определенную информацию с другого сайта?
Нашел пример как вытащить новости, но как некрутил, он так и не заработал.

<?
// адрес страницы
$adr=’http://www.gazeta.ru/sport/index.shtml’; 
// признак начала блока
$begblock=’НОВОСТИ СПОРТА</span>
// признак конца блока
$endblock=<!—SNEWS—>’ 
// цвет рамки таблицы курса (белый)
$brdcolor=#ffffff’; 
// цвет фона ячеек таблицы курса
$bgcolor=#eeeeee’; 
$screen=file($adr);
// перебираем все строки страницы
for ($i 0$i sizeof($screen); $i++) { 
if (
strpos($screen[$i],$begblock) != false) {
$numbegin $i+1;
}
if (
strpos($screen[$i],$endblock)!=false) {
$numend $i-1;
}

// в переменных $numbegin и $numend теперь содержатся
// номера строк, соответствующие началу и концу 
// новостного блока 
$old = array(<img src=/i/t.gif width=1 height=3><br>,
</td></tr></table>,
<table width=234 cellspacing=0 cellpadding=6’.
’ border=0 bgcolor=#CCCCCC>’,
<tr><td>,"><span class=h17bFF>’,
’</span><br>’,’<span class=h12>’,
’</span></a><br>’,
’<img src=/i/w.gif width=234 height=3><br>’); 

$new = array(’’,
’’,
’’,
’’,
’" 
target "_blank"><span class="style">,
’ ’,
’’,
</span></a>,
’’); 
$kolstr sizeof($old); // количество фраз в массивах 
for ($i $numbegin$i<=numend$i++){
for (
$j 0$j $kolstr$j++) {
// функцией str_replace 
// производится замена одной
// фразы в строке на другую:
$screen[$i] = str_replace($old[$j],
$new[$j], $screen[$i]);
}
$result[] = $screen[$i];

for (
$i 0$i<sizeof($result); $i++) {
echo 
"$result[$i]<br>\n";
}
?> 

Если дописать в

for ($i = 0; $i < sizeof($screen); $i++) { 
if (strpos($screen[$i],$begblock) != false) {
$numbegin = $i+1;
}
if (strpos($screen[$i],$endblock)!=false) {
$numend = $i-1;
}


условие ложности

for ($i = 0; $i < sizeof($screen); $i++) { 
if (strpos($screen[$i],$begblock) != false) {
$numbegin = $i+1;
}
else { echo "error_1"; }
if (strpos($screen[$i],$endblock)!=false) {
$numend = $i-1;
}
else "error2";


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

   

Сообщения:  [1-2] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования