Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Czytanie danych ze strony....
Forum PHP.pl > Forum > Przedszkole
szosti90
Mój problem polega na tym: potrzebuje skryptu który będzie czytał level postaci ze strony

http://www.tibia.com/community/?subtopic=c...cters&name=Sir%20Rockiy

Chce aby czytało zawartość ze strony chodzi tu o level.

Level ma być wyświetlany na mojej stronie smile.gif
E -dd
Użyj funkcj file_get_contents i preg_match smile.gif
szosti90
a tak dokładniej jakto zrobić questionmark.gif Może macie jakiś gotowy skrypt
Babcia@Stefa
Cytat(E -dd @ 22.01.2007, 17:01:25 ) *
Użyj funkcj file_get_contents i preg_match smile.gif


A może dokładniej wyjaśnisz? biggrin.gif
Też przy okazji by mogło mi się przydać.
Ja poradziłbym sobie gdyby np. tak by był tekst:
Name: ....
Ale jak są tabele to troche gorzej jest...

@edit
Jednak z tabelami nie jest tak źle biggrin.gif

Dziękuję, Babcia@Stefa
szosti90
jak tego użyć questionmark.gif
Cienki1980
Dokładnie tak jak piszą w manualu:
http://pl.php.net/manual/pl/function.file-get-contents.php
Pobierasz całą strone ( czyli kod html'owy w tym przypadku ) przez wpisanie adresu.

Obrabiasz otrzymanego string'a albo przez http://pl.php.net/manual/pl/function.preg-match.php albo siłowo za pomocą :
- obcięcia części którą wiesz, że możesz odrzucić.
- wyszukania charakterystycznego tekstu ( w tym przypadku Name )
- tak długo obcinanie tekstu aż do uzyskania satysfakcjonującego rezultatu.
szosti90
ja nie jestem raczej zaawansowany. Mógł byś podać przynajmniej głupi przykład jak to powinnow wyglądać questionmark.gif To jest tekst na kilkanaście linijek smile.gif
Cienki1980
Ale tu nie ma co pisać. Jako argument do funkcji file_get_contents podajesz adres strony którą chcesz wyciągnąć.
Zmienna której przypiszesz wynik działania funkcji będzie zawierała cały kod tej strony czyli to co zobaczysz jak podejrzysz źródło strony.

Jak będziesz miał źródło strony za pomocą odpowiednich funkcji będziesz mógł je odpowiednio podocinać powyciągać odpowiednie dane.

Nie będę pisał przykładu, bo będziesz starał się na siłe go przystosować do swoich potrzeb. Lepiej jak zaczniesz kombinować sam.
szosti90
ja nie wiem jak odczytać ten kod
Cysiaczek
Czego nie umiesz? Użyć jednej z podstawowych i dobrze opisanych w manualu funkcji php?
  1. <?php
  2. $kod_tej_strony=file_get_contents("http://itakdalejitakdalej.com");
  3. ?>


Po prostu czekasz na gotowca, albo żeby Cię ktoś za rączkę prowadził w najprostszych sprawach.? : /
szosti90
znalazłem coś takiego, to są statystyki radia internetowego. Może to da się przerobić. To pilne
  1. <center>
  2. <?
  3.  $sc[czas]  =  180;
  4.  $sc[host]  =  "playcast.eu";
  5.  $sc[port]  =  1122;
  6. $sc[template]  =  " <font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="white">Zasilanie:<b> [status]</b><br>Stacja:<b>[dj]</b><br>Prowadzi:<b> [genre] </b><br>Slucha:<b> [ile] osób</b><br>";
  7. #  $sc[template]  =  "<b>Status (on/off/err) :</b> [status]<br><b>GG DJ-a:</b> [gg]<br><b>Dj:</b> [genre]<br><b>Ilu sluchaczy aktualnie/maksymalnie/peak:</b> [ile]/[max]/[peak]<br>";
  8.  
  9.  
  10.  
  11.  
  12. ?>
  13. <html>
  14. <head>
  15. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  16. <META HTTP-EQUIV="Refresh" CONTENT="<?=$sc[czas]?>; URL="">
  17. </head>
  18. <body background="gfx/menu_right_tlo1.GIF">
  19. <?
  20. if($fp = @fsockopen($sc[host], $sc[port]))
  21. {
  22. fputs($fp,"GET /index.html HTTP/1.0rnUser-Agent: XML Getter (Mozilla Compatible)rnrn");
  23. fgets($fp);fgets($fp);fgets($fp);
  24.  while(!feof($fp)) $in.=strip_tags(fgets($fp));
  25. fclose($fp);
  26. # echo $in;
  27.  
  28. // [status]
  29.  $m[0]="Server is currently";
  30.  $m[1]="";
  31.  $mp[0]=strpos($in,$m[0]);
  32.  $mp[1]=@strpos($in,$m[1]);
  33.  $ml[0]=strlen($m[0]);
  34.  $ml[1]=strlen($m[1]);
  35.  
  36.  $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , 5 ) ) );
  37.  
  38.  if( $tmp[1][0] == "up" )
  39.  $dat[status] = "on";
  40.  elseif( $tmp[1][0] == "down" )
  41.  $dat[status] = "off";
  42.  else
  43.  $dat[status] = "err";
  44.  
  45.  if($dat[status]=="on")
  46.  {
  47.  // [dj]
  48.  $m[0]="Stream Title:";
  49.  $m[1]="Content Type:";
  50.  $mp[0]=strpos($in,$m[0]);
  51.  $mp[1]=strpos($in,$m[1]);
  52.  $ml[0]=strlen($m[0]);
  53.  $ml[1]=strlen($m[1]);
  54.  
  55.  $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) );
  56.  
  57.  if( $tmp[1] ) $dat[dj] = $tmp[1];
  58.  else $dat[dj] = "err";
  59.  
  60.  // [gg]
  61.  $m[0]="Stream AIM:";
  62.  $m[1]="Stream IRC:";
  63.  $mp[0]=strpos($in,$m[0]);
  64.  $mp[1]=strpos($in,$m[1]);
  65.  $ml[0]=strlen($m[0]);
  66.  $ml[1]=strlen($m[1]);
  67.  
  68.  $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) );
  69.  
  70.  if( $tmp[1] ) $dat[gg] = $tmp[1];
  71.  else $dat[gg] = "err";
  72.  
  73.  // [genre]
  74.  $m[0]="Stream Genre:";
  75.  $m[1]="Stream URL:";
  76.  $mp[0]=strpos($in,$m[0]);
  77.  $mp[1]=strpos($in,$m[1]);
  78.  $ml[0]=strlen($m[0]);
  79.  $ml[1]=strlen($m[1]);
  80.  
  81.  $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-) );
  82.  
  83.  if( $tmp[1] ) $dat[genre] = $tmp[1];
  84.  else $dat[genre] = "err";
  85.  
  86.  // [ile]
  87.  $m[0]="kbps with";
  88.  $m[1]="listeners";
  89.  $mp[0]=strpos($in,$m[0]);
  90.  $mp[1]=strpos($in,$m[1]);
  91.  $ml[0]=strlen($m[0]);
  92.  $ml[1]=strlen($m[1]);
  93.  
  94.  $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-) ) );
  95.  
  96.  if( $tmp[1] ) $dat[ile] = $tmp[1][0];
  97.  else $dat[ile] = "err";
  98.  
  99.  // [max]
  100.  $m[0]="kbps with";
  101.  $m[1]="listeners";
  102.  $mp[0]=strpos($in,$m[0]);
  103.  $mp[1]=strpos($in,$m[1]);
  104.  $ml[0]=strlen($m[0]);
  105.  $ml[1]=strlen($m[1]);
  106.  
  107.  $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-) ) );
  108.  
  109.  if( $tmp[1] ) $dat[max] = $tmp[1][2];
  110.  else $dat[max] = "err";
  111.  
  112.  // [peak]
  113.  $m[0]="Listener Peak:";
  114.  $m[1]="Average";
  115.  $mp[0]=strpos($in,$m[0]);
  116.  $mp[1]=strpos($in,$m[1]);
  117.  $ml[0]=strlen($m[0]);
  118.  $ml[1]=strlen($m[1]);
  119.  
  120.  $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-7) );
  121.  
  122.  if( $tmp[1] ) $dat[peak] = $tmp[1];
  123.  else $dat[peak] = "err";
  124.  
  125.  
  126.  
  127.  }
  128. }
  129. else
  130. {
  131.  $dat=array();
  132.  $dat[status]="err";
  133. }
  134.  
  135. $co  =  array('[status]','[dj]','[genre]','[ile]','[max]','[peak]','[leci]');
  136. $naco  =  array($dat[status],$dat[dj],$dat[genre],$dat[ile],$dat[max],$dat[peak],$dat[leci]);
  137. $sc[template]  =  str_replace($co,$naco,$sc[template]);
  138.  
  139. echo $sc[template];
  140. ?>
  141. </font>
  142. </body>
  143. </html>
Cienki1980
A może byś jednak spróbował sam napisać coś od podstaw. Z tego kodu nie ma co przerabiać bo nie ma to najmniejszego sensu.

Uwierz nam na słowo to nie jest trudne i nikt Ci raczej gotowca nie napisze bo nie taki jest cel.

Powtarzam raz jeszcze:
- używasz funkcji get_file_contents()
- otrzymany kod obrabiasz ... zaraz zapytasz się jak.
Wejdź na tę stronę z której chcesz wyciągnać dane i podejrzyj źródło ( oto mała podpowiedź: kliknij prawym przyciskiem myszy i wybierz opcję "Pokaż źródło"). Dokładnie takie samo coś otrzymasz w wyniku działania funkcji. Popatrz na to i zobacz, które dane musisz usunąć, żeby zostawić tylko to co potrzebujesz.
Za pomocą prostych funkcji php dokonasz tego "czyszczenia" kodu i bingo. Masz czego pragniesz.
maryaan
no stary nie przeginaj zeby xerowac jakis megaskrypt po to zeby wyciagnac pare znakow tekstu. W zrodle strony jak byk masz
  1. <TD>Level:</TD><TD>74</TD>
to nie wiem w czym problem, wytsarczy MINIMUM checi i poczytanie tego watku jeszcze raz od poczatku...
szosti90
to to ja wiem jak znaleźć i to w kodzie strony ale ja nie wiem jak wywołać ten kod
Cienki1980
Ile razy jeszcze będziemy pisać nazwę funkcji file_get_contents() questionmark.gif

Podajesz tam adres i w wyniku otrzymujesz kod strony.
Babcia@Stefa
@edit
Ja już zakapowałem jak to zrobić biggrin.gif
To bardzo proste winksmiley.jpg

Dziękuję, Babcia@Stefa
szosti90
to jak wie ktos jak to zrobić questionmark.gif
Cienki1980
Tak wiemy jak to zrobić i wszyscy czekamy aż Ty w końcu też zrozumiesz o co w tym chodzi i jakie to proste jest.
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.