Gå til innhold

hente noe tekst fra tekst-fil


Anbefalte innlegg

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
Videoannonse
Annonse

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

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

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...... :whistle:

Lenke til kommentar

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... :blush:

 

Edit: Fjernet en [/kode] som hadde sneket seg inn på toppen

Endret av Dagga
Lenke til kommentar

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 av hm87
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...