WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Hjälp med att söka och separera text (https://www.wn.se/forum/showthread.php?t=15862)

PetterS 2006-08-26 20:44

Hejsan!

Jag behöver hjälp med en för mig ganska komplicerad grej. För att kunna samla in information om uppladdare/nedladdare till min torrentsida vill jag söka igenom andra sidors htmlkod och hitta resultatet.

Till att börja med gör jag såhär:

<?php
$mininova = include('http://www.mininova.org/get/404337');
?>
För att läsa in sidan jag vill åt. (Är detta sättet verkligen smart? den är ju på 8kb.)

Nu kommer förhoppningsvis $mininova att innehålla källkoden till hela hemsidan. Där finns ju informationen jag vill ha. Det väsentliga i hela källkoden är de siffrorna vi ser i koden nedan.

<tr><td>Seeds:</td><td><div class="g">13</div></td></tr>
<tr><td>Leechers:</td><td><div class="b">2</div></td></tr>

Nu behöver jag hjälp med en funktion som kan plocka ut siffrorna!

Eventuellt skulle man även kunna göra detta med något slags javascript!

Tack på förhand! //Petter

Per 2006-08-26 21:00

Använd reguljära uttryck (eng. regular expressions). Se: php.net/preg_match.

(I ditt fall kanske: #<tr><td>Seeds:</td><td><div class="g">(.*?)</div></td></tr># resp. #<tr><td>Leechers:</td><td><div class="b">(.*?)</div></td></tr>#)

grazzy 2006-08-26 21:01

Kod:

preg_match('/<tr><td>Seeds:</td><td><div class="g">(\d+)<\/div><\/td><\/tr>/',$mininova,$matches);
echo $matches[0];

Läs på om regexp och preg_match. Att göra det med javascript blir svårt.


Edit: uj, dubbelpost med Per.

PetterS 2006-08-26 21:17

Ok! Tackar för svar! Jag har dock lite problem med att läsa in en hel hemsida i en sträng! Det vill helt enkelt inte fungera.

Lundmark 2006-08-26 21:22

Citat:

Originally posted by PetterS@Aug 26 2006, 19:44

<?php
$mininova = include('http://www.mininova.org/get/404337');
?>

Testa:

$mininova = implode('', file(http://www.mininova.org/get/404337));


Edit: Det kan även vara problem med radbrytningar.... allt måste vara rätt när du söker i texten.

PetterS 2006-08-26 23:52

Jepp! Nu funkar det=) Synd bara att mininova har en responstid på typ 10 minuter...

grazzy 2006-08-27 00:07

Lägg upp ditt phpscript som ett cronjobb i bakgrunden och skriv in datat du efterfrågar i en databas som du sedan hämtar det ifrån. Du måste säkert inte hämta från mininova varje gång du skall visa datat.


Alla tider är GMT +2. Klockan är nu 08:32.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson