Toon posts:

[PHP] Hoe na html rip filteren ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe filter ik bepaalde info uit een html pagina die ik extern opgehaald heb met PHP :?

Ik heb een aantal dingen van het forum geplukt en dat werkt goed

http://212.120.110.89/test/rip.php

ik wil dus bijvoorbeeld :
Current rank: 31 out of 14394 users
Total units processed: 86983.07
Total genes designed: 5846

veranderen in :
huidige positie : 31 van 14394 deelnemers
enz.

thxs

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
Die heb ik hier liggen maar ik kom er gewoon niet uit :)

een tip is genoeg, dan kan ik verder

/me is een PHP newbee

Verwijderd

Wat dacht je van een regex?

Verwijderd

Wat je in het voorbeeld wat je geeft het best kan doen is str_replace() gebruiken.

Maar ik kan me voorstellen dat je bepaalde data uit zo'n pagina in variabelen wil hebben. Er bestaan geavanceerde functies hiervoor die ik zelf eigenlijk nog niet gebruikt heb, maar ik raad je wel aan om toch even documentatie er op na te slaan.

Als ik zelf pagina's parse gebruik ik de explode() functie. Het getal '31' kan je verkrijgen door:
list($trash, $rank) = explode("rank: ", $page_content, 2);
list($rank, $trash) = explode(" out", $rank, 2);

De variabele $rank is dan 31.

Zo kun je de rest ook doen en uiteraard kan je van deze methode het best even een functie maken aangezien je deze 2 stappen veel zal gebruiken.

Zoals ik al zei zijn hier dus ook geavanceerde functies voor maar, volgens mij, werkt bovenstaande sneller aangezien je specifiek gebruikt wat je nodig heb en deze geavanceerde functies zijn veel algemener. Alhoewel dit verschil waarschijnlijk toch niet echt merkbaar zal zijn ;)

Verwijderd

Ok

Ook ik heb een probleempje: jawel de volgende, ik wil een file inlezen vanaf een bepaalde url en ik wil uit de inhoud van het bestand alleen een bepaalde string die gedeelte lijk variabel is "vastetext"-variabletext-"vastetext" maar dat begint niet op positie 1 van het bestand..

ik kan wel eerst het bestand inlezen, dan de positie bepalen waar het begint maar niet het gedeelte om dat gedeelte weer uit te lezen en in een 'array' te zetten.

:)

Verwijderd

ehhh... :?

Voorbeeldje?

Verwijderd

Topicstarter
Op woensdag 12 december 2001 20:20 schreef Phoz het volgende:
Wat je in het voorbeeld wat je geeft het best kan doen is str_replace() gebruiken.

Maar ik kan me voorstellen dat je bepaalde data uit zo'n pagina in variabelen wil hebben. Er bestaan geavanceerde functies hiervoor die ik zelf eigenlijk nog niet gebruikt heb, maar ik raad je wel aan om toch even documentatie er op na te slaan.

Als ik zelf pagina's parse gebruik ik de explode() functie. Het getal '31' kan je verkrijgen door:
list($trash, $rank) = explode("rank: ", $page_content, 2);
list($rank, $trash) = explode(" out", $rank, 2);

De variabele $rank is dan 31.

Zo kun je de rest ook doen en uiteraard kan je van deze methode het best even een functie maken aangezien je deze 2 stappen veel zal gebruiken.

Zoals ik al zei zijn hier dus ook geavanceerde functies voor maar, volgens mij, werkt bovenstaande sneller aangezien je specifiek gebruikt wat je nodig heb en deze geavanceerde functies zijn veel algemener. Alhoewel dit verschil waarschijnlijk toch niet echt merkbaar zal zijn ;)
Thxs ! daar gaan we eens mee worstelen ! *D

Verwijderd

Topicstarter
Keej ik kom er niet helemaal uit...

ik haal de info op d.m.v een

$file = fopen("http://gah.stanford.edu/cgi-bin/userpage.pl q=[DPC]_DTC_Computershops","r");

vervolgens gebruik ik :

while (!feof($file)) {
$line = fgets($file, 2048);
if (eregi("<BR>" , $line)) {$test = TRUE;};
if (eregi("<TABLE width=70% border=0 cellpadding=0 cellspacing=0 align=left>" , $line)) {$test = FALSE;};
if ($test == TRUE){
$line = stripslashes($line);
$line = eregi_replace( "</font>", "", $line );
$line = eregi_replace( "<hr>", "", $line );
echo $line;

om de voor mij interessante info uit de html pagina te plukken. (de $line dus)

Nou is mij niet helemaal duidelijk wat je nou precies met

list($trash, $rank) = explode("rank: ", $page_content, 2);
list($rank, $trash) = explode(" out", $rank, 2);

kunt bereiken.

Verwijderd

Daarmee kun je bereiken dat je bepaalde integers of strings uit een pagina kunt halen die je voor verdere doeleinden kunt gebruiken. Niet altijd is een pagina zo ingedeeld dat je d.m.v. een simpele str_replace() de pagina zo kan veranderen zoals jij het wil.

Ik zie dat je eregi_replace() gebruik om strings te vervangen. Ik kan je aanraden str_replace() te gebruiken waar dit ook mogelijk is aangezien deze functie vele malen sneller is.
Pagina: 1