Avatar billede camban Nybegynder
16. august 2005 - 22:27 Der er 9 kommentarer og
1 løsning

txt-fil problemer

Jeg har 2 problemer jeg mægtig gerne vil ha hjælp til;

Jeg generer en liste med tekst fra en txt-fil og billeder fra en mappe. Se her evt. http://www.daydreambeliever.dk/PHPtest/projektnewlist.php

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

content.txt ser sådan ud;
1|Overskrift|Lorem ipsum...|Længere forklaring....
2|Overskrift|Lorem ipsum....


Når man trykker på et af billederne åbnes nyt vindue og alle billederne fra mappe projekt1 eller projekt2 eller så videre vises inkl. tekst. Men det er så teksten fra hele txt-filen og ikke kun linie 1 med projekt1-tekst. Jeg bruger samme kode ovenfor så derfor sætter den åbenbart alt tekst ind. Hvordan gør således at kun tekst1 kommer frem i det nye vindue ved projekt1?

Det andet problem er at der på det nye vindue ikke vises default et stort billede. Hvordan får jeg den til at vise første billede i rækken nedenfor?

På forhånd tak :o)
Avatar billede nielle Nybegynder
16. august 2005 - 22:36 #1
Jeg kan se at du føre "side=projekt1" over. Hvis du nøjes med "side=1" så bliver det lidt nemmere:

$id = $_GET["side"];

$afile = file("projektnew/content.txt");
for ( $i=0; $i< count($afile); $i++ )
{
    $afileline = explode("|",chop($afile[$i]));
    if ($id == $afileline[0])
    {
        // udskriv
        break;
    }
}
Avatar billede camban Nybegynder
16. august 2005 - 22:50 #2
Tak det virker fint nu :o)

Kan du også hjælpe mig med default stort billede hvis jeg smider koden. Det skal være det første i rækken nederst der vises som stort når man åbner vinduet...her en  koden

<?php


$side = @$_GET['side'];
$side = str_replace('/', '', $side);
if (empty($side) || !is_dir('projektnew/'.$side)) {
  $side = null;
}

if($side !== null) {
$p = opendir("projektnew/" . $side);

    echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
    echo "<tr><td colspan=\"3\"><img src=\"images/transpixel.gif\" height=\"30\"></td></tr>";
    echo "<tr><td colspan=\"3\" bgcolor=\"#6DCDFF\" class=\"borderbrown borderbrowntop\"><img src=\"images/transpixel.gif\" height=\"15\"></td></tr>";
    echo "<tr><td colspan=\"3\"><img src=\"images/transpixel.gif\" height=\"30\"></td></tr>";
    echo "<tr>";
  echo "<td>";
  echo "<img height=\"240\" src=projektnew/";
  echo $side;
  echo "/";
  echo $_GET['file'];
  echo "><br>\n";
  echo "</td>";
  echo "<td><img src=\"images/transpixel.gif\" width=\"30\"></td>";

  echo "<td>";
echo "<table class=\"normaltxt\"><tr><td>";

$id = $_GET["side"];

$afile = file("projektnew/content.txt");
for ( $i=0; $i< count($afile); $i++ )
{
    $afileline = explode("|",chop($afile[$i]));
    if ($id == $afileline[0])
    {   
        echo $afileline[1]."<br><br>\n".$afileline[2]."<br><br>\n".$afileline[3];
        }}
        echo "</td></tr></table></td></tr>";
     

    echo "<tr><td height=\"10\" colspan=\"3\">&nbsp;</tr>";
    echo "<tr><td height=\"60\" colspan=\"3\"><table><tr>";
while($filnavn = readdir($p)){
  if($filnavn != "." && $filnavn != ".."){

  echo "<td>";
  echo '<a href="?side='. urlencode($side) .'&amp;file='. urlencode($filnavn). '">';
  echo "<img height=\"60\" border=\"0\" src=projektnew/";
  echo $side;
  echo "/";
  echo $filnavn;
  echo "></a><br>\n";
  echo "</td>";

  }
}
  echo "</tr>
</table>
</td>
</tr></table>";   
   
    }

?>
Avatar billede jakobdo Ekspert
16. august 2005 - 22:53 #3
if (empty($side) || !is_dir('projektnew/'.$side)) {
  $side = "standard.jpg";
}
Avatar billede camban Nybegynder
16. august 2005 - 22:58 #4
Jeg vil helst have at det er det første billede i rækken der vises stort. Jeg kan vel ikke være sikker på at standard.jpg vil lægge sig først i rækken. Billederne i mappen hedder alt muligt men der ligger altid et billede med nummeret på projektet som også vises på listen, kan man evt. få det først i rækken og i stort format når man åbner vinduet?
Avatar billede nielle Nybegynder
16. august 2005 - 23:07 #5
Tak det virker fint nu :o)

Kan du også hjælpe mig med default stort billede hvis jeg smider koden. Det skal være det første i rækken nederst der vises som stort når man åbner vinduet...her en  koden

<?php
$side = @$_GET['side'];
$side = str_replace('/', '', $side);
if (empty($side) || !is_dir('projektnew/' . $side))
{
    $side = null;
}

if ($side !== null)
{
    $largeImage = "";

    if (isset($_GET['file'])
    {
        $largeImage = $_GET['file'];
    }
    else
    {
        $p = opendir("projektnew/" . $side);
        while ($filnavn = readdir($p))
        {
            if ($filnavn != "." && $filnavn != "..")
            {
                $largeImage = $filnavn;
                break;
            }
        }
        closedir($p);
    }

    $p = opendir("projektnew/" . $side);

    echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
    echo "<tr><td colspan=\"3\"><img src=\"images/transpixel.gif\" height=\"30\"></td></tr>";
    echo "<tr><td colspan=\"3\" bgcolor=\"#6DCDFF\" class=\"borderbrown borderbrowntop\"><img src=\"images/transpixel.gif\" height=\"15\"></td></tr>";
    echo "<tr><td colspan=\"3\"><img src=\"images/transpixel.gif\" height=\"30\"></td></tr>";
    echo "<tr>";
    echo "<td>";
    echo "<img height=\"240\" src=projektnew/";
    echo $side;
    echo "/";
    echo $largeImage;
    echo "><br>\n";
    echo "</td>";
    echo "<td><img src=\"images/transpixel.gif\" width=\"30\"></td>";
    echo "<td>";
    echo "<table class=\"normaltxt\"><tr><td>";

    $id = $_GET["side"];

    $afile = file("projektnew/content.txt");
    for ($i=0; $i<count($afile); $i++)
    {
        $afileline = explode("|", chop($afile[$i]));
        if ($id == $afileline[0])
            echo $afileline[1] . "<br><br>\n" . $afileline[2] . "<br><br>\n" . $afileline[3];
    }

    echo "</td></tr></table></td></tr>";
    echo "<tr><td height=\"10\" colspan=\"3\">&nbsp;</tr>";
    echo "<tr><td height=\"60\" colspan=\"3\"><table><tr>";
    while ($filnavn = readdir($p))
    {
        if ($filnavn != "." && $filnavn != "..")
        {
            echo "<td>";
            echo '<a href="?side=' . urlencode($side) . '&amp;file=' . urlencode($filnavn). '">';
            echo "<img height=\"60\" border=\"0\" src=projektnew/";
            echo $side;
            echo "/";
            echo $filnavn;
            echo "></a><br>\n";
            echo "</td>";
        }
    }
    echo "</tr>
    </table>
    </td>
    </tr>
    </table>";   
}
?>
Avatar billede nielle Nybegynder
16. august 2005 - 23:08 #6
Glem lige de første paragraffer - cut'n'paste er noget farligt noget :^|
Avatar billede camban Nybegynder
16. august 2005 - 23:12 #7
Siger der er en fejl
Parse error: parse error, unexpected '{' in /var/www/www.daydreambeliever.dk/www/PHPtest/projekt.php on line 22
hvilket er linjen efter if (isset($_GET['file']):

if (isset($_GET['file'])
    {
        $largeImage = $_GET['file'];
    }
Avatar billede nielle Nybegynder
16. august 2005 - 23:14 #8
Der mangler en slut-parentes:

if (isset($_GET['file']))
Avatar billede camban Nybegynder
16. august 2005 - 23:16 #9
Tusind tak det virker jo også fortrinligt...smid et svar :o)
Avatar billede nielle Nybegynder
16. august 2005 - 23:17 #10
Svar :^)
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