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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: У меня есть еще одна проблема с Граберром
 
 автор: Arsenal   (17.06.2008 в 14:53)   письмо автору
 
 

Я хочу открыть site RBC – а вот не открывается.

   
 
 автор: Root   (17.06.2008 в 14:56)   письмо автору
 
   для: Arsenal   (17.06.2008 в 14:53)
 

а как вы открываете? дайте хоть screenshot :-)

   
 
 автор: Arsenal   (17.06.2008 в 14:59)   письмо автору
 
   для: Arsenal   (17.06.2008 в 14:53)
 

Вот код Граббера.

<?php
if (!defined('BLOCK_FILE')) {
Header("Location: ../index.php");
exit;
}

$rows = "";
$xhost = "www.rbc.ru";
$referer = "www.rbc.ru";
$pagefile = "/index.ru.html";
$st = "<!--blockstart-->";
$sp = "<!--blockend-->";
$hostrec = "GET $pagefile HTTP/1.0\r\nHOST: $xhost\r\nReferer: $referer\r\n\r\n\r\n";
$checkhost = fsockopen("$xhost", 80, &$errno, &$errst, 3);
if ($checkhost){
fputs ($checkhost, $hostrec);
while (!feof ($checkhost)){
$rows .= trim(fgets($checkhost, 1024));
}
fclose($checkhost); //Закрываем файл
eregi("$st(.*)$sp", $rows, $rf);
$rf = trim($rf[1]);
$rf = str_replace("#444444", "#FFCC66", $rf);
$rf = str_replace("<!-- NewsHeader -->", "<!-- NewsHeader --><font color=\"#993300\">", $rf);
$rf = str_replace("<!-- NewsBody -->", "<!-- NewsBody --><font color=\"#000000\">", $rf);
$rf = str_replace("<!-- NewsFooter -->", "</font><!-- NewsFooter -->", $rf);
$rf = str_replace("<table width=\"90%\"", "<table width=\"100%\"", $rf);
$rf = str_replace("href=\"/cgi-bin/", "href=\"http://www.rbc.ru/cgi-bin/", $rf);
$rf = str_replace("href=\"/cash/", "href=\"http://www.rbc.ru/cash/", $rf);
$rf = str_replace("<img src=\"/i/", "<img src=\"http://www.rbc.ru/i/", $rf);
$rf = str_replace("<img", "<img border=\"0\"", $rf);
$rf = str_replace("<a href=\"/cash.html", "<a href=\"http://www.rbc.ru/cash.html", $rf);

$rf = ereg_replace("javascript(.*)\)","",$rf);
$content = "$rf"; //Выводим содержимое блока
} else {
$content = "<center><i><b>Server error!</b></i></center>"; установлено, }
?>

   
 
 автор: Arsenal   (17.06.2008 в 16:21)   письмо автору
 
   для: Arsenal   (17.06.2008 в 14:59)
 

Люди помогите с Граббером

   
 
 автор: Zend72   (17.06.2008 в 17:03)   письмо автору
 
   для: Arsenal   (17.06.2008 в 16:21)
 

Для начала вот это исправьте
$content = "<center><i><b>Server error!</b></i></center>"; установлено, }

Ну и если я правильно понимаю в конец нужно добавить
 echo $content; 

   
 
 автор: Arsenal   (18.06.2008 в 09:45)   письмо автору
 
   для: Zend72   (17.06.2008 в 17:03)
 

Здесь что именно надо исправить?

$content = "<center><i><b>Server error!</b></i></center>"; установлено, }

   
 
 автор: AcidTrash   (18.06.2008 в 09:52)   письмо автору
 
   для: Arsenal   (18.06.2008 в 09:45)
 

Убрать выделенное.

   
 
 автор: Arsenal   (18.06.2008 в 11:06)   письмо автору
 
   для: AcidTrash   (18.06.2008 в 09:52)
 

Хорошо Я убрал выделенное, но все ни чего не показывает.

   
 
 автор: AcidTrash   (18.06.2008 в 11:13)   письмо автору
 
   для: Arsenal   (18.06.2008 в 11:06)
 

echo $content; написали?

   
 
 автор: mihdan   (18.06.2008 в 11:20)   письмо автору
 
   для: Arsenal   (17.06.2008 в 14:53)
 

А так не проще?

<?
$fp 
implode(''file('http://www.rbc.ru'));
preg_match('|<div class="nList">(.*?)<\/div>|s'$fp$matchs);

// Главные новости:
echo $matchs[1];
?>


PS: такой страницы нет - www.rbc.ru/index.ru.html, есть www.rbc.ru/index.html или www.rbc.ru
<!--blockstart-->, <!--blockend--> - такого в коде страницы вообще нет, может поэтому и не работает?

Если вам тупо нужно носоти взять , то http://www.informer.ru/

   
 
 автор: BinLaden   (18.06.2008 в 13:59)   письмо автору
 
   для: mihdan   (18.06.2008 в 11:20)
 

Уважаемый mihdan, я Вам в советчики не гожусь - слишком мало знаний, но для себя хотел бы узнать зачем Вы пишите

<?php
$fp 
implode(''file('http://example.com/page.html'));
?>


а не, допустим,

<?php
$fp 
file_get_contents('http://example.com/page.html');
?>


?

Вы видите в этом свои плюсы? Я - нет, вот и спрашиваю...

   
 
 автор: AcidTrash   (18.06.2008 в 14:11)   письмо автору
 
   для: BinLaden   (18.06.2008 в 13:59)
 

to BinLaden
Честно сказать я тоже разницы не вижу
Что такая конструкция
implode('', file('http://example.com/page.html'));
и просто
file_get_contents('http://example.com/page.html');
записывают данные в строку.

До версии PHP 4.3.0 функции file_get_contents() не было и чтобы получить файл в виде строки приходилось использовать написаное выше.

P.S.
Может кому как удобнее. Вероятно mihdan живет еще в том времени :)

   
 
 автор: mihdan   (18.06.2008 в 14:38)   письмо автору
 
   для: AcidTrash   (18.06.2008 в 14:11)
 

2AcidTrash я начинал программировать с РНР3 потом перешел на РНР4, РНР5 - вот оттуда и есть ухищрения для совместимости во всех версиях ))) Если кому-то удобно file_get_contents - пожалуйста, но file() возвращает содержимое прочитанного файла в виде массива, а file_get_contents - содержимое файла возвращается в строке.

Использование функции file_get_contents() наиболее предпочтительно в случае необходимости получить содержимое файла целиком, поскольку для улучшения производительности функция использует алгоритм 'memory mapping' (если поддерживается операционной системой).

   
 
 автор: AcidTrash   (18.06.2008 в 15:42)   письмо автору
 
   для: mihdan   (18.06.2008 в 14:38)
 

Отличия file() и file_get_contents() я хорошо знаю :)
Но с учетом того, что сейчас мало кто использует версии ниже 4.3.0, в этих ухищерениях необходимости нет.

   
 
 автор: mihdan   (18.06.2008 в 16:25)   письмо автору
 
   для: AcidTrash   (18.06.2008 в 15:42)
 

Ну тут я не согласен - очень многие хочтеры так и не соизволили перейти на РНР выше 4.3

   
 
 автор: BinLaden   (18.06.2008 в 17:10)   письмо автору
 
   для: mihdan   (18.06.2008 в 16:25)
 

> очень многие хочтеры так и не соизволили перейти на РНР выше 4.3

Не знаю ни одного такого. Например? Южноафриканских хостеров не предлагать:)

   
 
 автор: mihdan   (18.06.2008 в 17:41)   письмо автору
 
   для: BinLaden   (18.06.2008 в 17:10)
 

Ну это уже не ваше дело где и какие хостеры, так как это корпоративные проблемы. А если не слышали и не видели, то и говорить нечего

   
 
 автор: BinLaden   (18.06.2008 в 19:04)   письмо автору
 
   для: mihdan   (18.06.2008 в 17:41)
 

Ну что это Вы сразу хамите:) Я спросил "где такие?", а мне отвечают - "не знаете таких??? молчите!" :)))

Вы же сказали, что "многие ...", очевидно, что их много и для Вас не составит труда привести пример хоть одного:)

   
 
 автор: Arsenal   (24.06.2008 в 12:18)   письмо автору
 
   для: BinLaden   (18.06.2008 в 19:04)
 

Как создать Грабберы занова?

   
Rambler's Top100
вверх

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