Weblap benzin+horoszkóp

Pirity Tamás Gábor ptg at apaczai.elte.hu
2009. Sze. 14., H, 12:45:27 CEST


Ha jól hiszem, Zsolt Nagy írta az alábbiakat:
> Egy rövid példát mutassatok lécci! Elég ha egy szót kiírat a másik lapról!
> 
> Köszi!

Pl. a
http://petiba.apaczai.elte.hu/geo.php
mutatja, hogy az apáczais geoládások hány kincset találtak meg.
Természetesen az adatokat minden betöltéskor a www.geocachhing.hu
oldalról szedi le; lekér egy oldalt az illető ládászról, regexek
segítségével kikeresi, hogy hol vannak a megtalálások, és
a többi ,,feleslegben jövő választ'' eldobja, és utána a
kapott eredményt úgy formázom, ahogy akarom. Részlet a
scriptből:

  $format="<tr>\n<td align=left><a href=\"http://www.geocaching.hu/users.geo?id=%s\">%s</a></td>\n<td align=right>%s</td>\n</tr>\n"; 
  ...
  $kod=1234;
  $num="";
  $url=sprintf("http://www.geocaching.hu/users.geo?id=%s", $kod);
  $fp=@fopen($url, "r");
  if ($fp!==FALSE)
  {
  while (!feof($fp))
  {
    $currline=fgets($fp, 4096);
    if
      (preg_match("/^.*Megtalálás.*$/", $currline, $line)
         &&
       preg_match("/>[0-9][0-9]*</", $line[0], $szam))
    {
      $num .= substr($szam[0], 1, count($szam[0])-2);
    }
  }
  printf ($format, $kod, $nev, $num);
  ...

A fopen($url), fgets($fp) a kulcs, ezzel töltjük le az oldalt
a php programba, a preg_match segítségével keressük ki azt a
sort, ami érdekel minket, ebben van a felhasználóhoz tartozó
szám, és a substr-vel kivágjuk a számot, és az elmentett
számot printf-fel kiküldjük a böngészőbe.

(Nemigen van hibakezelés, ha gyökeresen megváltozik a
www.geocaching.hu oldal userinfo lapjainak szerkezete, akkor
a mi oldalunk is jelentős átdolgozásra fog szorulni.
De mondjuk legalább egy éve nem nyúltam hozzá és megy. :))

-- 
PTG
What's done to children, they will do to society.
Debian 4.0 -- Linux 2.6.22.6


További információk a(z) Techinfo levelezőlistáról