Gå til innhold

Lage en liste av alle linjer i et dokument


Anbefalte innlegg

Videoannonse
Annonse

$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 av ????????
Lenke til kommentar
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 av Tha_Zaynt
Lenke til kommentar
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 av robgar
Lenke til kommentar
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 av robgar
Lenke til kommentar

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

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
$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).

 

 

 

 

 

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 av robgar
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...