hm87 Skrevet 16. november 2004 Del Skrevet 16. november 2004 Jeg har en tekst-fil som ser slik ut, hvor jeg legger til navn og filnavn: navn1 | navn1.fil navn2 | navn2.fil Poenget er at jeg skal sette de inn i linker som <a href="navn1.fil">navn1</a> <a href="navn2.fil">navn2</a> Også videre.. Får skrevet ut en link, men vet ikke helt hvordan jeg skal gjøre for å få listet opp alle.. Bruker denne koden: <?php $filename = "appleter.txt"; if(!file_exists($filename)) { touch($filename); } $innlagte_appleter = explode(' | ', file_get_contents($filename)); echo "<a href=\"index.php?side=$innlagte_appleter[1]\">$innlagte_appleter[0]</a><br>"; ?> Lenke til kommentar
Dagga Skrevet 16. november 2004 Del Skrevet 16. november 2004 Du må itterere hele arrayen. innlagte_appleter vil jo inneholde 2xantallet linjer med data. Den enkle, dog kanskje noe dirty måten å gjøre dette på: <?php $filename = "appleter.txt"; if(!file_exists($filename)) { touch($filename); } $innlagte_appleter = explode(' | ', file_get_contents($filename)); //Tok med dette første, bare for enkelhets skyld $j=0; //teller for å hente riktig ut av arrayen $i=(count($innlagte_appleter))/2; //$i inneholder nå antallet linjer i scriptet for($i; $i>0; $i--) { // Gå gjennom denne koden $i ganger echo "<a href=\"index.php?side=$innlagte_appleter[$j+1]\">$innlagte_appleter[$j]</a><br>"; $j++; } Det er mulig den ikke tar med siste linja i fila di. I så tilfelle, endrer du $i=(count($innlagte_appleter))/2; til: $i=((count($innlagte_appleter))/2)+1; Lenke til kommentar
hm87 Skrevet 16. november 2004 Forfatter Del Skrevet 16. november 2004 (endret) Det ble: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ']' in C:\xampp\htdocs\java-ole\test.php on line 16 funker ikke å bruke "+1" inni den arraybiten..? Om jeg la til "+1" etter variabelen fikk jeg opp linkene, men med navnet og filnavnet som hver sin link.. Endret 16. november 2004 av hm87 Lenke til kommentar
Dagga Skrevet 16. november 2004 Del Skrevet 16. november 2004 Riktig. Bytt ut: for($i; $i>0; $i--) { // Gå gjennom denne koden $i ganger echo "<a href=\"index.php?side=$innlagte_appleter[$j+1]\">$innlagte_appleter[$j]</a><br>"; $j++; } med: for($i; $i>0; $i--) { // Gå gjennom denne koden $i ganger $k=j+1; echo "<a href=\"index.php?side=$innlagte_appleter[$k]\">$innlagte_appleter[$j]</a><br>"; $j++; } Enda mindre elegant...... Lenke til kommentar
hm87 Skrevet 16. november 2004 Forfatter Del Skrevet 16. november 2004 Ser ikke ut som det skjedde noe.. Lenke til kommentar
Dagga Skrevet 17. november 2004 Del Skrevet 17. november 2004 (endret) Samme feil? Vel, personlig liker jeg egentlig ikke å benytte arrays inne i ", som man kan gjøre med vanlige variabler, fordi jeg ofte får feilmeldinger på de. Er jo litt lat, og har ikke satt meg inn i hva som er lov og ikke lov, og jeg hadde vel heller skrevet: for($i; $i>0; $i--) { // Gå gjennom denne koden $i ganger $k=j+1; echo "<a href='index.php?side=".$innlagte_appleter[$k]."'>".$innlagte_appleter[$j]."</a><br>"; $j++; } dersom det var egen kode. For lesbarhet kan man også gjøre den slik: for($i; $i>0; $i--) { // Gå gjennom denne koden $i ganger $k=j+1; $url=$innlagte_appleter[$k]; $urltext=$innlagte_appleter[$j]; echo "<a href='index.php?side=$url'>$urltext</a><br>"; $j++; } Ja, det er flere kommandoer, men så sant ikke fila di inneholder flere tusen linjer, vil det neppe slå ut i merkbare tregheter. Det er nå lettere å se hvordan du henter ut verdiene fra Arrayen, og det kan være greit når du går tilbake å ser på koden om en måned eller to. Bare ett lite råd fra en som har forsøkt å vri hodet sitt rundt sin egen kode, uten bestandig å lykkes, mange ganger... Edit: Fjernet en [/kode] som hadde sneket seg inn på toppen Endret 17. november 2004 av Dagga Lenke til kommentar
hm87 Skrevet 17. november 2004 Forfatter Del Skrevet 17. november 2004 (endret) Det funket ikke det der heller, men jeg fikk løst problemet med dette scriptet: Var ikke så vanskelig som jeg trodde det var.. Men takk for hjelpa! <?php $filename = "appleter.txt"; if(!file_exists($filename)) { touch($filename); } $innlagte_appleter = explode(';', file_get_contents($filename)); foreach($innlagte_appleter as $value) { $applet = explode('|', $value); echo "<a href=\"index.php?side=applet&applet=$applet[1]\">$applet[0]</a><br>"; $applet = FALSE; } ?> Og tekstfila slik: navn1|filnavn1;navn2|filnavn2; Endret 17. november 2004 av hm87 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å