Tha_Zaynt Skrevet 4. november 2004 Del Skrevet 4. november 2004 (endret) jeg vil lage en liste av alle linjene i et .txt dokument slik ta det blir seende slik ur: 1. innhold i linje 1 2. innhold i linje 2 3. innhold i linje 3 osv. noen vet hvordan jeg kan få til dette? Endret 4. november 2004 av Tha_Zaynt Lenke til kommentar
???????? Skrevet 5. november 2004 Del Skrevet 5. november 2004 (endret) $fil_navn = "navnet_på_filen.txt"; $innhold = file($fil_navn); foreach($innhold as $linje){ echo "$linje<br>"; } Hvis du vil ha med linjenummer så finnes det mange måter å skrivet det på. Du kan f.eks. bruke: $fil_navn = "navnet_på_filen.txt"; $innhold = file($fil_navn); $i = 1; foreach($innhold as $linje){ echo "$i. $linje<br>"; $i++; } Endret 5. november 2004 av ???????? Lenke til kommentar
Torbjørn Skrevet 5. november 2004 Del Skrevet 5. november 2004 velkommen tilbake, ??????, svært så hjelpsom du er blitt. Hatt en fin ferie fra dine forpliktelser her på forumet? Lenke til kommentar
???????? Skrevet 5. november 2004 Del Skrevet 5. november 2004 Hehe... starter hyggelig igjen med koder og ikke bare linker Lenke til kommentar
Tha_Zaynt Skrevet 5. november 2004 Forfatter Del Skrevet 5. november 2004 flott, funka fint det ja. Jeg har et spm til; Hvordan setter jeg denne infoen inn i en tabell eller div (helst div) som skifter farge for hver $linje? Lenke til kommentar
Torbjørn Skrevet 5. november 2004 Del Skrevet 5. november 2004 min tur å være kryptisk: <?php while(etellerannet){ # blabla $color = $i=!$i ? "green": "red"; echo "<tr bgcolor=\"$color\">"; # blabla } Lenke til kommentar
Torbjørn Skrevet 5. november 2004 Del Skrevet 5. november 2004 hvorfor ikke bruke html-tabeller til tabulære data? Lenke til kommentar
Tha_Zaynt Skrevet 5. november 2004 Forfatter Del Skrevet 5. november 2004 hvorfor ikke bruke html-tabeller til tabulære data? Godt spørsmål, kanksje fordi jeg etter en stund har opparbeidet et stort hat ovenfor tabeller etter å ha lest utallige artikler om tabelløse design.. Lenke til kommentar
Torbjørn Skrevet 5. november 2004 Del Skrevet 5. november 2004 mulig det. glem ikke at tabeller har med sine egenskaper er laget for et formål. Lenke til kommentar
Tha_Zaynt Skrevet 5. november 2004 Forfatter Del Skrevet 5. november 2004 (endret) mulig det. glem ikke at tabeller har med sine egenskaper er laget for et formål. jepp, sant nok....men tilbake til listen: Jeg har litt problemer med å implementere koden din i en sammenheng, kan du kanskje hjlpe meg litt? Dette er koden så langt: <?php $lines = file('pameldte.txt'); $countlines = count($lines); if ($countlines < 1){ echo "<p>Det er ingen påmeldte deltagere enda!</p>"; } if ($countlines === 1){ echo "<p>Det er bare $countlines deltager påmeldt for øyeblikket. Den eneste påmeldte deltageren er:</p>"; } if($countlines > 1){ echo "<p>Det er $countlines påmeldte deltagere så langt. Disse er:</p>"; } $fil_navn = "pameldte.txt"; $innhold = file($fil_navn); $i = 1; foreach($innhold as $linje){ echo "$i. $linje<br>"; $i++; } ?> Endret 5. november 2004 av Tha_Zaynt Lenke til kommentar
robgar Skrevet 5. november 2004 Del Skrevet 5. november 2004 (endret) min tur å være kryptisk:<?php while(etellerannet){ # blabla $color = $i=!$i ? "green": "red"; echo "<tr bgcolor=\"$color\">"; # blabla } OM jeg tar en loop som varer 5 ganger, vil din kode gi en grønn og 4 røde linjer. (Har det noe å si at jeg har PHP 4 og ikke 5?) Prøvde meg litt : <table> <?php $lines = file('pameldte.txt'); $countlines = count($lines); $done = "done"; $color = "red"; if ($countlines < 1){ echo "<p>Det er ingen påmeldte deltagere enda!</p>"; } if ($countlines == 1){ echo "<p>Det er bare $countlines deltager påmeldt for øyeblikket. Den eneste påmeldte deltageren er:</p>"; } if($countlines > 1){ echo "<p>Det er $countlines påmeldte deltagere så langt. Disse er:</p>"; } $fil_navn = "pameldte.txt"; $innhold = file($fil_navn); $i = 1; foreach($innhold as $linje){ echo "<tr bgcolor=$color> <td> $i. $linje</td></tr>"; if ($color == "green" && $done !== $i) { $color="red"; $done=$i;} if ($color == "red" && $done !== $i) { $color="green"; $done=$i;} $i++; } ?> </table> Endret 5. november 2004 av robgar Lenke til kommentar
Torbjørn Skrevet 5. november 2004 Del Skrevet 5. november 2004 nei, min kode vil sette grønn og rød i variabelen $color uavhengig av alt annet som skjer. Lenke til kommentar
Tha_Zaynt Skrevet 5. november 2004 Forfatter Del Skrevet 5. november 2004 Nå ser det ut til at alt fungerer, takker så mye! Lenke til kommentar
robgar Skrevet 5. november 2004 Del Skrevet 5. november 2004 (endret) nei, min kode vil sette grønn og rød i variabelen $color uavhengig av alt annet som skjer. Den blir bare grønn en gang hos meg og rød 4 ganger : <table> <?php $ii = "0"; while($ii < "5"){ $color = $i=!$i ? "green": "red"; echo "<tr bgcolor=\"$color\"><td> bla bla </td></tr>"; $ii++; } ?> </table> Endret 5. november 2004 av robgar Lenke til kommentar
Tha_Zaynt Skrevet 5. november 2004 Forfatter Del Skrevet 5. november 2004 Dette begynner kanskje å bli litt avansert, men går det an å slette en og en linje? Jeg tenkte å få opp en eksta td på høyre side, der det står en link [slett] og når jeg trykker på den blir linjen slettet... Lenke til kommentar
???????? Skrevet 5. november 2004 Del Skrevet 5. november 2004 robgar for($i = 0; $i < 10; $i++){ $color = $i%2 ? "green": "red"; echo $color; } Tha_Zaynt Det er ikke noe problem å slette linjen. Da må linken inneholde radnummer, og i slette funksjonen så leser du inn filen på nytt - tar ut den delen av array'en og skriver til til filen igjen. Lenke til kommentar
Tha_Zaynt Skrevet 5. november 2004 Forfatter Del Skrevet 5. november 2004 ok, har du tid til å hjelpe meg med å skrive kode? Er temmelig blank på dette området skjønner du.. Her er koden: <?php $lines = file('pameldte.txt'); $countlines = count($lines); $maxplasser = "60"; $plasserigjen = $maxplasser-$countlines; $width = "50%"; echo "<table width=$width cellspacing=0>"; $done = "done"; $color = "#cccccc"; if ($countlines < 1){ echo "<p>Det er ingen påmeldte deltagere enda!</p>"; } if ($countlines === 1){ echo "<p>Det er bare $countlines deltager påmeldt for øyeblikket. Den eneste påmeldte deltageren er:</p>"; } if($countlines > 1){ echo "<p>Det er $countlines påmeldte deltagere så langt. Disse er:</p>"; } $fil_navn = "pameldte.txt"; $innhold = file($fil_navn); $i = 1; foreach($innhold as $linje){ echo "<tr bgcolor=$color> <td> $i. $linje</td></tr>"; if ($color == "#ffffff" && $done !== $i) { $color="#cccccc"; $done=$i;} if ($color == "#cccccc" && $done !== $i) { $color="#ffffff"; $done=$i;} $i++; } echo"</table>"; echo"<p>Antall plasser igjen: $plasserigjen </p>"; ?> Lenke til kommentar
Tha_Zaynt Skrevet 6. november 2004 Forfatter Del Skrevet 6. november 2004 Vi får ta det steg for steg da. Har sett litt på hvordan jeg skal fjerne en del av en array, men skjønner det ikke helt...leste litt om array_slice(), er det riktig å bruke i dette tilfellet? Lenke til kommentar
robgar Skrevet 6. november 2004 Del Skrevet 6. november 2004 (endret) $color = $i%2 ? "green": "red"; EDIT: Tror jeg skjønte det nå, Sjekker om $i (som stiger med 1 for hver gang) er delelig med 2 altså partall, om så rød, ellers grønn , stemmer dette? Beklager offtopic: Du henter inn hver linje i fila på vanlig måte, så tar du et array som er den linjen for hver linje: $i = "0"; $filens_innhold = array(); foreach ($fil as $linje) { print $linje; // det som er i skriptet ditt. print "<a href='dennefilen.php?slett=$i'> Slett linje nr: $i </a>"; // slette link. $filens_innhold[$i] = $linje; $i++; } Nå har du et array med alle linjene i filen. + en link med $_GET verdien (navn=verdi) slett=0 (øker med en for hver linje). Så if (!empty($_GET['slett'])) { // NB! ha dette etter den delen som samler filen i et array! $slettes_skal = $_GET['slett']; for ($i=0;$i<sizeof($filens_innhold);$i++) { if ($i !== $slettes_skal) { // sjekker om det ikke er den linjen som skal slettes. $hele_fil .= $filens_innhold[$i] . " "; //linje skift } } unlink("innhold.txt"); // sletter txt filen $fil = fopen("innhold.txt", "a+"); fwrite($fil, $hele_fil); fclose($fil); // Skriver til filen på nytt. } Håper det hjalp litt, Beklager for sent svar og dårlig formulert kode. Endret 6. november 2004 av robgar Lenke til kommentar
robgar Skrevet 6. november 2004 Del Skrevet 6. november 2004 Tok meg den frihet å implendere dette inn i skriptet ditt: <?php $lines = file('pameldte.txt'); $countlines = count($lines); $maxplasser = "60"; $plasserigjen = $maxplasser-$countlines; $width = "50%"; echo "<table width=$width cellspacing=0>"; $color = "#cccccc"; $filens_innhold = array(); if ($countlines < 1){ echo "<p>Det er ingen påmeldte deltagere enda!</p>"; } if ($countlines === 1){ echo "<p>Det er bare $countlines deltager påmeldt for øyeblikket. Den eneste påmeldte deltageren er:</p>"; } if($countlines > 1){ echo "<p>Det er $countlines påmeldte deltagere så langt. Disse er:</p>"; } $fil_navn = "pameldte.txt"; $innhold = file($fil_navn); $i = 1; foreach($innhold as $linje){ echo "<tr bgcolor=$color> <td> $i. $linje <a href='Bytt dette ut med din fil.php?slett=$i'>Slett denne linje </a> </td></tr>"; $filens_innhold[$i] = $linje; $color = $i%2 ? "green": "red"; // takk ????????? $i++; } echo"</table>"; echo"<p>Antall plasser igjen: $plasserigjen </p>"; if (!empty($_GET['slett'])) { // NB! ha dette etter den delen som samler filen i et array! $slettes_skal = $_GET['slett']; for ($i=0;$i<sizeof($filens_innhold);$i++) { if ($i !== $slettes_skal) { // sjekker om det ikke er den linjen som skal slettes. $hele_fil .= $filens_innhold[$i] . " "; //linje skift } } unlink("innhold.txt"); // sletter txt filen $fil = fopen("innhold.txt", "a+"); fwrite($fil, $hele_fil); fclose($fil); // Skriver til filen på nytt. } ?> 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å