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

Форум PHP

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

 

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

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

тема: Помогите организовать цикл.
 
 автор: mishaMC   (20.03.2006 в 16:10)   письмо автору
 
 

Есть куски кода, из них нужно сделать цикл. Первый кусок сдирает со страницы все ссылки в массив, второй умеет обрабатывать эти ссылки. Помогите составить правильный цикл.


Первый кусок:


<?
// Соединяемся, получаем страницу
$host "www.somehost.ru";
  
$path "/dealers/";
  
$path_menu="?cat_id=1";
  
$cookie"Cookie: PHPSESSID=fd11a45401340454543a3fda6a \r\n";
    
$fp fsockopen($host,80,$errno,$errstr,30);
  if(!
$fp) echo"$errstr ($errno)<br />\n";
  else{
    
$headers "GET $path.$path_menu HTTP/1.0\r\n";
    
$headers .= "Host: $host\r\n";
    
$headers .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n";
    
$headers .= "Accept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n";
    
$headers .= "Accept-Encoding: deflate\r\n";
    
$headers .= "Accept-Language: ru,en;q=0.9\r\n";
    
$headers .= "User-Agent: Opera/8.01 (Windows NT 5.1; U; ru)\r\n";
    
$headers .= "$cookie";
    
$headers .= "Connection: Close\r\n\r\n";
    
fwrite($fp,$headers);
    
$head "";
    while(
$text != "\r\n"){
    
$text fgets($fp,128);
      
$head .= $text;
    }
    
$text "";
    while(!
feof($fp)) $text .= fgets($fp,4096);
    
fclose($fp);
  }
// Блок создания ссылок, по которым в дальнейшем идем циклом
if($count=preg_match_all("/href=\'(.+?)\'\sclass=\'shop\'>(.+?)</",$text,$match))
for(
$i=0;$i<$count;$i++)
// Начался цикл
{


Второй кусочек обрабатывает все это при помощи рег. выражений:


$fp = fsockopen($host,80,$errno,$errstr,30);
  if(!$fp) echo"$errstr ($errno)<br />\n";
  else{
    $headers = "GET $path.$match[1][$i] HTTP/1.0\r\n";
    $headers .= "Host: $host\r\n";
    $headers .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n";
    $headers .= "Accept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n";
    $headers .= "Accept-Encoding: deflate\r\n";
    $headers .= "Accept-Language: ru,en;q=0.9\r\n";
    $headers .= "User-Agent: Opera/8.01 (Windows NT 5.1; U; ru)\r\n";
    $headers .= "$cookie";
    $headers .= "Connection: Close\r\n\r\n";
    fwrite($fp,$headers);
    $head = "";
    while($text != "\r\n"){
      $text = fgets($fp,128);
      $head .= $text;
    }
    $text = "";
    while(!feof($fp)) $text .= fgets($fp,4096);
    fclose($fp);
}

$text=$s;
$s = preg_replace("/\n/","",$s);
if($count=preg_match_all("/shop_name.+?\".+?\".+?>(.+?)<\/a><\/td>.+?right\'>(.+?)<.+?\[(\d+).+?right\'>(\d+).+?right\'>(\d+).+?right\'>(\d+)/",$s,$cat,PREG_SET_ORDER))


Как сделать из них цикличную программу, которая бы результаты записывала в файл, например?!?

   
 
 автор: cheops   (21.03.2006 в 01:25)   письмо автору
 
   для: mishaMC   (20.03.2006 в 16:10)
 

Чего-то не очень понятно, что требуется сделать, на вид скрипты одинаковые и различаются только регулярными выражениями... и что подразумевается под результатами?

   
Rambler's Top100
вверх

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