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

Форум PHP

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

 

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

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

тема: граблями по страницам или @fsockopen
 
 автор: Чайка   (08.10.2007 в 21:04)   письмо автору
 
 

Здравствуйте! Помогите решить следующую задачу: Мне необходимо на определенном сайте периодически считывать данные, прочесывать страницы как это делает, например rambler, допустим необходимо найти адрес электронной почты на странице, думаю что это должно работать так:

<?php
  $URL 
"localhost"//
  
$path "/"
  
$fp = @fsockopen($URL80$errno$errstr10);  
  if (!
$fp) { echo 'Нет загрузки!<p>Ошибка при открытии сайта  '.$URL.'</p><p> № ошибки '.$errno.'</p><p> ОПИСАНИЕ ошибки '.$error_description.'</p>';   
  } 
   
//------------------------------------------------------------------------------------
  
else
  {
  echo 
'Загрузили успешно!<P> URL сайта  = '.$URL.'</p> ';
            
fputs ($fp"GET / HTTP/1.0\r\n"); 
            
fputs ($fp"\r\n");
            while (!
feof($fp)) //проверяем конец ли файла?
            
{
            
//получить строку
            
$line fgets($fp1024);
            
//посмотреть где попрежнему есть email
                
while(eregi ("[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}"$line$match))
                {                
                print(
"<li>{$match[0]}</li>\n");
                
//удалить все email из строки        
                
$line ereg_replace($match[0], ""$line);
                }
            }
            echo(
"</ul>\n");
             
  }
  @
fclose($fp);                                         
?>    



Так вот локально все работает, а если подставить www адрес, то email почему-то не находиться. Грамотные люди подскажите, что не так.

   
 
 автор: Shorr Kan   (08.10.2007 в 21:39)   письмо автору
 
   для: Чайка   (08.10.2007 в 21:04)
 

Во-первых, в каком виде вы подставляете адрес? Нужно без http:// .
Во-вторых, не забывайте, что в адресе почты тире тоже нередко встречаются. А у вас их нет.

   
 
 автор: Чайка   (08.10.2007 в 21:45)   письмо автору
 
   для: Shorr Kan   (08.10.2007 в 21:39)
 

Подставляю без http:// , а регулярное выражение может стоять любое, другое это не так важно, я ведь пример привел, экспериментирую на своем сайте, локально находит емайл, а глобально нет, хотя загружается без ошибок, вот загадка.

   
 
 автор: Shorr Kan   (08.10.2007 в 21:57)   письмо автору
 
   для: Чайка   (08.10.2007 в 21:45)
 

То есть, если принтануть $line после строчки $line = fgets($fp, 1024); - выводится то, что и должно? Тот самый сайт, где ищется мейл?

   
 
 автор: Чайка   (08.10.2007 в 22:14)   письмо автору
 
   для: Shorr Kan   (08.10.2007 в 21:57)
 

Если правильно понял, то надо сделать так

//получить строку
$line = fgets($fp, 1024);
echo $line ;


результат локально выводит содержимое файла, глобально информацию
HTTP/1.1 200 OK Date: Mon, 08 Oct 2007 18:06:55 GMT Server: Apache/1.3.37 (Unix) mod_fastcgi/2.4.2 PHP/4.4.7 mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 mod_ssl/2.8.28 OpenSSL/0.9.7f Last-Modified: Sun, 23 Sep 2007 08:00:45 GMT ETag: "270047-647-46f61d2d" Accept-Ranges: bytes Content-Length: 1607 Connection: close Content-Type: text/html
о домене и хостинге. Что не так?

   
 
 автор: Shorr Kan   (08.10.2007 в 22:35)   письмо автору
 
   для: Чайка   (08.10.2007 в 22:14)
 

Давайте сперва упростим код до предела. Попробуйте так:


<?
$line
=file_get_contents("http://softtime.ru/");
preg_match_all('|[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}|isU',$line,$match);
print_r($match);
?>

   
 
 автор: Чайка   (08.10.2007 в 22:55)   письмо автору
 
   для: Shorr Kan   (08.10.2007 в 22:35)
 

Спасибо, так работает

   
Rambler's Top100
вверх

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