Avatar billede camban Nybegynder
27. juli 2005 - 00:39 Der er 17 kommentarer og
1 løsning

array - billeder

Jeg har et problem med følgende kode. Jeg tror måske et array er løsningen? I mappen projekter ligger 01.jpg, 02.jpg, 03.jpg...osv. og de skal vises i nummerisk rækkefølge (og ikke som nu hvor alle billeder vises pr. række og helt tilfældigt)

Hvordan gør jeg?


<?php


$afile = file("content.txt");
for ( $i=0; $i< count($afile); $i++ ) {
$afileline = explode("|",chop($afile[$i]));

echo "<tr>";

$mappe = opendir("projekter/");
if ( $mappe !== false ) { 
    while($filename = readdir($mappe)) {
        if ( strlen($filename) > 2 ){
            echo "<td><img src=\"http://www.domæne.dk/PHPtest/projekter/$filename\"></td>";   
                    }
    }
    closedir($mappe);   
}

echo "<td>";
echo $afileline[0]."<br>\n".$afileline[1]."
".$afileline[2]."<br>\n";
echo "</td>";
echo "</tr>";

}
?>
Avatar billede jaw Nybegynder
27. juli 2005 - 00:44 #1
Hvad indeholder content.txt? Hvis alle filerne bare hedder fra 01 til 99 f.eks., så er det vel bare en løkke du skal have?

for($i = 1; $i < 100; $i++) {
  $i = ($i < 10) ? "0".$i : $i;
  echo "<img src='$i.jpg'>";
}
Avatar billede coderdk Praktikant
27. juli 2005 - 00:58 #2
$jpgs = glob( 'projekter/*.jpg' );
natsort( $jpgs );
foreach ( $jpgs as $jpg )
{
    echo "<img src=\"http://www.domæne.dk/PHPtest/projekter/$jpg\">";
}
Avatar billede camban Nybegynder
27. juli 2005 - 00:59 #3
content.txt indeholder indtil videre
1|et|tekst1
2|to|tekst2
3|tre|tekst3

og udfor disse skal billeder der passer indsættes...

Man skal kunne lægge billeder op løbende og ved derfor aldrig hvor mange billeder der er i mappen. Men rigtig nok de hedder bare 01.jpg, 02.jpg osv.

Jeg har lige prøvet det du kom med, men måske jeg jeg har sat det forkert ind...hvad med opendir og closedir skal der fortsat være der?
Avatar billede jaw Nybegynder
27. juli 2005 - 01:01 #4
Ja det skal det, ellers skal du bare sætte:

<img src='./bibliotek/$i.jpg'>
Avatar billede camban Nybegynder
27. juli 2005 - 01:11 #5
>coderdk - har lige prøvet det bliver ligesom før http://daydreambeliever.dk/PHPtest/arrayTEST9.php, måske jeg har forklaret mig dårligt...der skal kun være et billede for hver linie

>jaw - gider du ikke lige prøve at lave koden fuldstændig som jeg skal sætte den ind - bliver nemlig lidt i tvivl om $filename og $i?
Avatar billede jaw Nybegynder
27. juli 2005 - 01:17 #6
Erhm tjoh, men så tillader jeg mig at ændre en smule i det. Prøv:

$afile = file("content.txt");
for ( $i=0; $i< count($afile); $i++ ) {
$afileline = explode("|",chop($afile[$i]));

echo "<tr>";

echo "<td><img src='./projekter/".$afileline[0].".jpg'></td>";
echo "<td>";
echo $afileline[0]."<br>\n".$afileline[1]."
".$afileline[2]."<br>\n";
echo "</td>";
echo "</tr>";

}
Avatar billede jaw Nybegynder
27. juli 2005 - 01:18 #7
Men efter at have klikket på dit link, så tror jeg at jeg misforstår lidt hvad du vil have :)
Avatar billede camban Nybegynder
27. juli 2005 - 01:21 #8
Ja jeg tænkte det måske nok :o) Svært at forklare for en grøn PHP'er...men altså kun et billede pr tekst og i rækkefølge nedad.
Avatar billede jaw Nybegynder
27. juli 2005 - 01:23 #9
Har du lagt min kode ud, så jeg kan se den? Så er det måske nemmere at forstå hvad du vil...
Avatar billede camban Nybegynder
27. juli 2005 - 01:27 #10
Nej jeg har ikke lagt din kode på for jeg forstår ikke om jeg skal beholde noget af dette

$mappe = opendir("projekter/");
if ( $mappe !== false ) { 
    while($filename = readdir($mappe)) {
        if ( strlen($filename) > 2 ){
            echo "<td><img src=\"http://www.domæne.dk/PHPtest/projekter/$filename\"></td>";   
                    }
    }
    closedir($mappe);   
}
Avatar billede jaw Nybegynder
27. juli 2005 - 01:28 #11
Skal du ikke - jeg har byttet alt dit ud med nyt... Der mangler dog bare lige <?PHP og ?> :)
Avatar billede camban Nybegynder
27. juli 2005 - 01:34 #12
Ok jeg tror ikke jeg fatter en brik... det ser mystisk ud; http://daydreambeliever.dk/PHPtest/arrayTEST10.php

Sådan ser koden ud;

<?php


$afile = file("content.txt");
for ( $i=0; $i< count($afile); $i++ ) {
$afileline = explode("|",chop($afile[$i]));

echo "<tr>";


for($i = 1; $i < 100; $i++) {
  $i = ($i < 10) ? "0".$i : $i;
            echo "<td><img src=\"http://www.daydreambeliever.dk/PHPtest/projekter/$i.jpg\"></td>";   
                    }

echo "</tr>";
echo "<td>";
echo $afileline[0]."<br>\n".$afileline[1]."
".$afileline[2]."<br>\n";
echo "</td>";
echo "</tr>";

}
?>
Avatar billede jaw Nybegynder
27. juli 2005 - 01:36 #13
Nåå - nej, nej. Du skal ikke blande mine 2 koder sammen, men udelukkende have:

<?PHP
$afile = file("content.txt");
for ( $i=0; $i< count($afile); $i++ ) {
$afileline = explode("|",chop($afile[$i]));

echo "<tr>";

echo "<td><img src='./projekter/".$afileline[0].".jpg'></td>";
echo "<td>";
echo $afileline[0]."<br>\n".$afileline[1]."
".$afileline[2]."<br>\n";
echo "</td>";
echo "</tr>";

}
?>
Avatar billede camban Nybegynder
27. juli 2005 - 01:46 #14
Ok har prøvet og det ser godt ud http://daydreambeliever.dk/PHPtest/arrayTEST11.php
Hvor bestemmer man at billedet skal starte med 1.jpg eller 0.jpg?
Avatar billede jaw Nybegynder
27. juli 2005 - 01:49 #15
Det gør du sådan set i din fil. Den tager filnavnet udfra det først tal i din hver linie:

1|et|tekst1 - så tager den filen 1.jpg
Avatar billede camban Nybegynder
27. juli 2005 - 01:55 #16
Ok det er perfekt...hvis jeg så skal gøre billedet til et link der åbner et nyt vindue med en specifik side for hvert billede/projekt, formoder jeg der lidt samme procedure hvis jeg fx kalder siderne 1projekt.php, 1projekt.php osv.? Ikke at du skal hjælpe mig med det...i hvert fald ikke i aften ;o)

Tusind tak for din pædagogiske tålmodig :o) point til dig!
Avatar billede jaw Nybegynder
27. juli 2005 - 01:58 #17
Hehe, det er bare i orden - og selv tak :) Hvis ikke du lige får det kringlet, så smid en kommentar i morgen eller på et andet tidspunkt, så får vi vist hurtigt smidt et link på :)
Avatar billede camban Nybegynder
27. juli 2005 - 11:51 #18
Hej igen - fik det med linket ( http://daydreambeliever.dk/PHPtest/arrayTEST11.php ) til at virke men efter nærmere overvejelse var det lidt noget andet jeg ville have...måske du kunne hjælpe mod lidt ekstra point? :o)
Jeg vil gerne have at disse projekt1.php, projekt2.php osv. generes dynamisk så jeg ikke skal indover hver gang der lægges et nyt projekt til arrayTEST11.php. De underliggende sider der linkes til fra arrayTEST11 (projekt1.php...osv) skal geners udfra en skabelon. Hvordan gøres dette?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester