Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: analizowanie składni innej WWW
Forum PHP.pl > Forum > Przedszkole
boya
Witam

Zbudowalem sobie katalog www i chcialbym dodajacym ulatwic dodawanie linkow poprzez wyciaganie do formularza zawartosci meta-tagow stron dodawancyh, aby to zrobic musze sie wbic na www ktora ma byc dodana i przeprawadzic jakas analize jej skladni...to chyba nie bedzie trudne, tylko jak dostac sie do innej www i wpakowac do jakiejsc zmiennej np zawartosc tej www i przeprowadzac jej analize...

pytania.
- jak wpakowac zrodelko www innej www do jakiegos bufora(zmiennej).
- jezeli jest jakis post na ten temat prosze o link.

pozdrawiam
Tom.
Jojo
Jeżeli tylko Twój serwer na to pozwala to możesz użyć zwykłego fopen.
mike
Cytat(boya @ 2005-12-09 12:30:02)
- jak wpakowac zrodelko www innej www do jakiegos

O ile nie masz wyłączonych URL'i przy okazji safe_mode:
# fopen()
# file_get_contents()

Inaczej:
# cURL;

Lub (?):
# sockets
boya
dziekuje, curl raczej odpada bo na servie nie ma ;/ a admin jest toporny...
Jakóp
  1. <?php
  2.  
  3. $test = file('http://adres.pl/strona.html');
  4. $i = 0 ;
  5. foreach($test as $line)
  6. {
  7. //instrukcja
  8. }
  9.  
  10. ?>


ja tym analizowałem stronkę winksmiley.jpg
doszłem do ~200 lini kodu i mi sie odechciało... chciałem se ułatwić dodawanie filmów do prywartnej bazy danych... winksmiley.jpg analiza strony filmweba trwa około 10-15 sek. z dysku zajmowało mu 1-2.

poniżej załaczam winksmiley.jpg
  1. <meta http-equiv="Content-type" content="text/html;charset=WINDOWS-1250">
  2. <?php
  3. $start=time();
  4. function tab_del($t)
  5. {
  6. return eregi_replace("t" , '' ,$t) ;
  7. }
  8. function fuck_html($aa)
  9. {
  10. $www=explode('>',$aa);
  11. $ww=explode('<',$www[1]);
  12. RETURN $ww[0];
  13. }
  14. function wycinacz($string)
  15. {
  16. //static $ol = 1;
  17. $string=eregi_replace('<span class="styt">','',$string);
  18. $string=eregi_replace('</span>','',$string);
  19. if (eregi('(',$string))
  20.  {
  21.  if(eregi('AKA',$string))
  22.  {
  23. $stri = explode(') (',$string);
  24. $string=eregi_replace('(','',$stri[0]);
  25. $string=eregi_replace(')','',$stri[1]);
  26. $string=implode('|',$stri);
  27. }
  28.  else
  29.  {
  30. $string=eregi_replace('(','',$string);
  31. $string=eregi_replace(')','',$string);
  32. }
  33.  }
  34.  
  35. RETURN tab_del($string);
  36. }
  37. function kraj($str)
  38. {
  39.  $str=eregi_replace('produkcja: ','',$str);
  40.  $str=eregi_replace('<b> <a href="http://www.filmweb.pl/TopFilm?country.id=','',$str);
  41.  $str=eregi_replace('</b>','',$str);
  42.  $str=eregi_replace('</a>','',$str);
  43.  list($null , $str) =explode('">',$str);
  44.  RETURN $str;
  45. }
  46. function gat($str)
  47. {
  48.  $str=eregi_replace('gatunek: ','',$str);
  49.  $str=eregi_replace('<b><a href="http://www.filmweb.pl/TopFilm?genre.id=','',$str);
  50.  $str=eregi_replace('</b>','',$str);
  51.  $str=eregi_replace('</a>','',$str);
  52.  list($null , $str) =explode('">',$str);
  53.  RETURN $str;
  54. }
  55. $test = file('d:shr.htm');
  56. $i = 0 ;
  57. foreach($test as $line)
  58. {
  59.  
  60. if(eregi('<div class="tyt">',$line)) 
  61. { 
  62. echo 'tytuł polski: ';
  63. $title = tab_del($test[++$i]);
  64. echo $title.'<br>' ; // zwraca polski tytuł
  65.  
  66.  $tab[]=wycinacz($test[++$i]);
  67.  $tab[]=wycinacz($test[++$i]);
  68.  // echo $tab[0];
  69.  if((int)$tab[0] AND eregi('<br>',$tab[1]))
  70.  {
  71.  if (eregi('AKA',$tab[0]))
  72.  {
  73.  $ex=explode('|',$tab[0]);
  74.  $data=$ex[1];
  75.  $aka=eregi_replace('AKA ','',$ex[0]);
  76.  }
  77.  else
  78.  {
  79.  $data = $tab[0] ;
  80.  }
  81.  $title2=$title;
  82.  $i-=;
  83.  }
  84.  else
  85.  {
  86. if (eregi('AKA',$tab[1]))
  87.  {
  88.  $ex=explode('|',$tab[1]);
  89.  $data=$ex[1];
  90.  $aka=eregi_replace('AKA ','',$ex[0]);
  91.  }
  92.  else
  93.  {
  94.  $data = $tab[1] ;
  95.  }
  96.  $title2=$tab[0];
  97.  $i-=; ;
  98.  } 
  99.  echo 'tytul org: '.$title2;  
  100.  echo '<br>';
  101.  echo 'Tytuł AKA: '.$aka.'<br>';
  102.  echo 'rok produkcji: '.$data.'<br>';
  103.  
  104.  
  105. //echo preg_replace('<span class="styt">(.*)</span>' , '1' , $test[++$i]) ;
  106. ;}
  107. if (eregi('</b>/10',$line)) 
  108.  {
  109.  //echo test;
  110.  $str=$test[--$i];
  111.  $str=eregi_replace('<b style=','',$str);
  112.  $str=eregi_replace('"','',$str);
  113.  $str=eregi_replace('color: rgb','',$str);
  114.  $str=eregi_replace('(','',$str);
  115.  $str=eregi_replace(')','',$str);
  116.  $str=eregi_replace(';>','',$str);
  117.  $str=eregi_replace(' 141, 0, 0','',$str);
  118.  $str=eregi_replace('color: #8D0000','',$str);
  119.  $str=eregi_replace('</b>/10','',$str);
  120.  $str=eregi_replace(',','.',$str);
  121.  echo 'średnia głosów: '.tab_del($str).' /10<br>';
  122.  }
  123. if (eregi('głosów: <b>',$line)) 
  124.  {
  125.  $str=$test[$i];
  126.  $str=eregi_replace('głosów: <b>','',$str);
  127.  $str=eregi_replace('</b>','',$str);
  128.  echo 'głosowało ludzi: '.tab_del($str).'<br>';
  129.  }
  130. if (eregi('produkcja: <b>',$line)) 
  131.  {
  132.  $arry = explode (',',$test[$i]);
  133.  echo 'Produkcja : ';
  134.  for ($g=0; $g<count($arry); $g++)
  135. {
  136.  $bu[] = kraj($arry[$g]); 
  137. }
  138.  echo implode(',',$bu).'<br>';
  139.  }
  140. if (eregi('gatunek: <b>',$line)) 
  141.  {
  142.  $arrk = explode (',',$test[$i]);
  143.  echo 'Gatunek : ';
  144.  for ($g=0; $g<count($arrk); $g++)
  145. {
  146.  $buk[] = gat($arrk[$g]); 
  147. }
  148.  echo implode(',',$buk).'<br>';
  149.  }
  150.  
  151. if(eregi('data premiery',$line)) 
  152. {  
  153. $tab = array() ;
  154. $tab[]=$test[++$i]; // jeden
  155. $tab[]=$test[++$i]; // dwa
  156. if(!eregi('polsk' , $tab[0])) 
  157. {
  158. $pl = '0' ;
  159. $orgi = $tab[0] ;
  160. }else{
  161. $pl = $tab[0] ;
  162. $orgi = $tab[1] ;
  163. }
  164.  
  165. $pl=eregi_replace(' <b>','',$pl);
  166. $pli=explode(' ',$pl);
  167. $pl=eregi_replace(' , <b>','',$orgi);
  168. $plo=explode(' ',$orgi);
  169. echo 'Premiera polska: '.$pli[0].'<br>';
  170. echo 'Premiera świat: '.$plo[1].'<br>';
  171.  $i-=2;
  172. }
  173. if(eregi('scenariusz',$line)) 
  174. {
  175. echo ++$i;
  176. echo $tab[$i];
  177. echo '<br>scenariusz: '.fuck_html($tab[$i]).'<br>';
  178. echo --$i;
  179. }
  180. $i++ ;
  181. }
  182. //$gimbo='<a class="n" title="Louis Leterrier- filmografia - FILMWEB.pl" href="http://www.filmweb.pl/Louis,Leterrier,filmografia,Person,id=90319">Louis Leterrier</a>';
  183. //echo fuck_html($gimbo);
  184. echo '<br><br>czas generowania strony: ';
  185. echo time()-$start.' sek. ';
  186. //print_r($data);
  187. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.