mikk- Skrevet 25. september 2003 Del Skrevet 25. september 2003 Les denne Jeg har en fil der det ligger masse linjer. Hver linje ser ca slik ut: <<36<<Mikael<>Berg<>[email protected]<>9366XXXX<>Mikka<>1988<>Røros<>Berg<>36 0 32347<< Jeg vil ha ut det siste, altså "36 0 32347" og ha det som en variabel ($sist eller noe). Noen som vet hvordan jeg gjør dette? Er nemmlig ikke så god i php! :wink: Lenke til kommentar
Dino_ Skrevet 25. september 2003 Del Skrevet 25. september 2003 function substr(); og starte tellingen bakfra... kan brukes, dersom alle linjene har samme format, har du derimot forskjell på måten tlf-nr blir skrevet... ja da veit ikke jeg... $sist = substr("<<36<<Mikael<>Berg<>[email protected]<>9366XXXX<>Mikka<>1988<>Røros<>Berg<>36 0 32347<<", -12, 10); // -12: vi teller bakfra..,10: så mange tegn skal vi ha med for å slippe de siste to << echo "$sist"; // teste utfall... har du sett, det kan funke... [tanke] du kan jo skrive deg en function som lagrer tlf.nr i fila i riktig format.. function nrformat(nummer) { $nummer = "ta bort country-prefix(+47)"; $nummer = "ta bort alle mellomrom"; $nummer = "legg til mellomrom på riktig plass" } [/tanke] dette dersom du får nummerne inn via et eller annen skjema, fylt ut av mennesker... Lenke til kommentar
pekle Skrevet 25. september 2003 Del Skrevet 25. september 2003 <?php $str = "<<36<<Mikael<>Berg<>[email protected]<>9366XXXX<>Mikka<>1988<>Røros<>Berg<>36 0 32347<<"; $a = explode('>',$str); echo rtrim(end($a),"<"); ?> Lenke til kommentar
mikk- Skrevet 25. september 2003 Forfatter Del Skrevet 25. september 2003 Ok, takk takk! :-) Men hvordan får jeg til å hente dette fra fila? Det jeg aller helst skulle hatt er at man henter ut det siste nummeret (her 36 0 32347) fra den linja der det første nummeret er $plass, i dette tilfellet "36". Er dette vanskelig å lage? Lenke til kommentar
pekle Skrevet 25. september 2003 Del Skrevet 25. september 2003 Ikkje så vanskeleg, men sikkert litt tricky i starten. Stikkord: fopen(), fgets() kombinert med det eg skreiv tidlegare, samt f.eks www.php.net eller www.phpbuilder.com Lykke til! Lenke til kommentar
magikern Skrevet 26. september 2003 Del Skrevet 26. september 2003 for å hjelpe deg litt i gang: function fnc_line($file) { if($fp = fopen($file, 'r')) { $array = @file($file); foreach($array as $key){ /*se under fnc*/ return $key; } } else{ return FALSE; } } /*vet ikke om foreach egentlig er det smarteste å bruke der*/ $w = fnc_line($file); $w = trim($w); $start = "<>"; $end = "<<"; $strrchrstart = strrchr($w, "$start"); $strrchrend = strrchr($w, "$end"); så må du bare finne en måte å trekke ut det som står mellom $strrchrstart og $strrchrend... <-- det er jeg ganske usikker på hvordan man gjør... Lenke til kommentar
mikk- Skrevet 29. september 2003 Forfatter Del Skrevet 29. september 2003 Ok, nå har jeg fått det til ganske bra, tror jeg. Men problemet er at scriptet hele tiden tar ut den koden som ligger på den øverste linja, ikke den der det første tallet er $pl. Noen som vet hvordan jeg kan få til det? Lenke til kommentar
magikern Skrevet 29. september 2003 Del Skrevet 29. september 2003 Ok, nå har jeg fått det til ganske bra, tror jeg. Men problemet er at scriptet hele tiden tar ut den koden som ligger på den øverste linja, ikke den der det første tallet er $pl. Noen som vet hvordan jeg kan få til det? vet ihvertfall det at når jeg lager random quote o.l. script legger jeg hele fila i et array og bruker en rand function til å trekke ut linjenummer... med functionen jeg skrev over her legges fila i et array, så da må du først søke etter det nr du ville ha tak i så sjekke hvilket # linja det ligger på har så trekke ut den... <-- vil jeg tro ihvertfall... Lenke til kommentar
mikk- Skrevet 6. oktober 2003 Forfatter Del Skrevet 6. oktober 2003 Ok, nå har jeg fått det til ganske bra, tror jeg. Men problemet er at scriptet hele tiden tar ut den koden som ligger på den øverste linja, ikke den der det første tallet er $pl. Noen som vet hvordan jeg kan få til det? vet ihvertfall det at når jeg lager random quote o.l. script legger jeg hele fila i et array og bruker en rand function til å trekke ut linjenummer... med functionen jeg skrev over her legges fila i et array, så da må du først søke etter det nr du ville ha tak i så sjekke hvilket # linja det ligger på har så trekke ut den... <-- vil jeg tro ihvertfall... *Bump* :smile: Ok, skjønte ikke så mye av det. Er ikke noe rå på php, kan bare det aller aller mest grunnleggende... :oops: Er det noen som kan forklare dette litt nærmere, eventuelt komme med en ferdig løsning til dette? Det jeg trenger er at jeg skal gjøre noe med den linja som starter med <<$pl (for eksempel <<36). Hvis dette for eksempel kunne vært en if-greie slik som dette: if (linje == 36) { blah blah, slette og greier } <- Bare for å illustrere. Det med slettinga har jeg fått til. Jeg mangler bare at det skal skje med den linja, og ikke med den linja som ligger øverst. Lenke til kommentar
mikk- Skrevet 7. oktober 2003 Forfatter Del Skrevet 7. oktober 2003 Ingen som har peil? Lenke til kommentar
sven-o Skrevet 7. oktober 2003 Del Skrevet 7. oktober 2003 Noe sånt du mente? $finn = "<<".$pl; foreach(file("filen.txt") as $f){ if(substr($f, strlen($finn ))==$finn){ //Slett denne linja! } } Komplett eksempel: $finn = "<<".$pl; $filarr = file("filen.txt"); $fp = fopen("filen.txt",'w'); foreach(file($filarr as $f){ if(substr($f, strlen($finn ))!=$finn){ fwrite($fp, $f); } Lenke til kommentar
mikk- Skrevet 7. oktober 2003 Forfatter Del Skrevet 7. oktober 2003 Tusen takk! Nå fikk jeg det til... 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å