loathsome Skrevet 14. mars 2007 Del Skrevet 14. mars 2007 (endret) Hei, La oss si jeg har en side, som inneholder X-antall DIV TAGer. Disse ser slik ut: <div id="viewPostN<tilfeldigetall>"> for eksempel: <div id="viewPostN9943098"> Tallene er utrolig dynamisk, og varierer hele tiden. Hvordan kan jeg printe ut KUN tallene? Denne DIVen er blannet sammen med en hel del annen kode. Dersom jeg skulle hatt tallene fra DIVen over, skulle jeg hatt 9943098 Basically; 1) Strippe vekk all HTML kode 2) Få takk i tallene som er etter "viewPostN"-DIVene. Takk for svar! loathsome+ Endret 14. mars 2007 av loathsome Lenke til kommentar
loathsome Skrevet 14. mars 2007 Forfatter Del Skrevet 14. mars 2007 Vel, nå har jeg liten peilig på regexp, så hva med å komme med et kodeeksempel? Lenke til kommentar
itsmebth Skrevet 14. mars 2007 Del Skrevet 14. mars 2007 <div id="viewPostN([0-9]+)"> Lenke til kommentar
Runar Skrevet 14. mars 2007 Del Skrevet 14. mars 2007 Vil "koden" din fungere, itsmebth? Du må vel skrive \ foran alle tegn, som ", og lignende. Samt at "koden" din ikke forteller loathsome en drit om hvordan det hele fungerer. Hvis du vil hjelpe folk, så skriv mer enn bare en ussel kodesnutt. Lenke til kommentar
aeinstein Skrevet 14. mars 2007 Del Skrevet 14. mars 2007 PHP-kode for å gjøre det: //hent inn siden her liksom: $htmlsiden = '<h1>for eksempel:</h1> <div id="viewPostN9943098">'; $vilfinne = '<div id="viewPostN'; $lengde = strlen($vilfinne); $pos = strpos($htmlsiden, $vilfinne ) + $lengde; echo substr($htmlsiden, $pos, 7); //7 fordi tallet du vil finne er 7 siffer. Da finner du første forekomst. skulle gå an å redigere den til å funke for flere også bare fortsett fra og med $pos + 7 hver gang du skal hente neste Dette var "hardkoding" finnes sikkert en funksjon som fikser det MYE enklere... Lenke til kommentar
magicgunnar Skrevet 14. mars 2007 Del Skrevet 14. mars 2007 (endret) Tror nok "Regular Expressions" er tingen å bruke her, funksjonene i php du trenger da er: http://no2.php.net/preg_match og http://no2.php.net/manual/en/function.preg-match-all.php Dette kan kanskje omsettes til følgende kode (utestet): preg_match_all('/(\d+)/', $sidenDin, $enToDimensjonalArrayMedAlleTallene); Denne vil da fange opp absolutt alle tall på siden, så ved å inkludere litt mer tekst rundt, vil den kanskje bare fange opp de tallene du vil ha, f.eks: preg_match_all('/viewPostN(\d+)/', $sidenDin, $enToDimensjonalArrayMedAlleTallene); Om du ønsker å lære mer om regulære uttrykk kan du kanskje starte med å lese her: http://en.wikipedia.org/wiki/Regular_expression Tabeller over substituering i regulære uttrykk, som kanskje duger er her: http://www.regular-expressions.info/reference.html http://www.greenend.org.uk/rjk/2002/06/regexp.html Endret 14. mars 2007 av magicgunnar Lenke til kommentar
itsmebth Skrevet 14. mars 2007 Del Skrevet 14. mars 2007 (endret) Vil "koden" din fungere, itsmebth? Du må vel skrive \ foran alle tegn, som ", <, > og lignende. Samt at "koden" din ikke forteller loathsome en drit om hvordan det hele fungerer. Hvis du vil hjelpe folk, så skriv mer enn bare en ussel kodesnutt. 8150505[/snapback] Jeg vet det ble litt lite info, men jeg måtte på skolen . PHP ereg('<div id="viewPostN([0-9]+)">', '<div id="viewPostN9943098">', $ret);print_r($ret); Array ( [0] => <div id="viewPostN9943098"> [1] => 9943098 ) Endret 14. mars 2007 av itsmebth Lenke til kommentar
loathsome Skrevet 14. mars 2007 Forfatter Del Skrevet 14. mars 2007 Hei, og takk for svar. Har sett litt på regular expressions, og fått hjelp et annet sted. Har kommet fram til følgende kode som funker utmerket! PHP <?php $html = '<div id="viewPostN9943098"> </div> <div id="viewPostN6325153">Tralalala</div> <div id="viewPostN1235353">Blalala</div>'; preg_match_all('#<div id="viewPostN(.*)">#iU', $html, $nummere); foreach($nummere[1] as $nummer) { echo $nummer."<br />"; } ?> loathsome Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå