Avatar billede michaelb.dk Nybegynder
04. december 2004 - 21:17 Der er 17 kommentarer og
1 løsning

Simpel kode i PHP

Jeg åbner en filliste sådan her rsort($filliste);

Hvordan gør man sådan at hvis der, i et af de filnavne der skrives ud, står en bestemt tekst, bliver teksten ændret til noget andet.

F.eks.:

Koden henter "Dansk opgave.doc" men scriptet har besluttet at "opgave" skal ændres til "noget andet", så der bliver udskrevet: "Dansk noget andet.doc"
Avatar billede gonza.dk Nybegynder
04. december 2004 - 21:40 #1
$din_variabel = str_replace("opgave", "noget andet", $din_variabel);
Avatar billede michaelb.dk Nybegynder
04. december 2004 - 22:24 #2
Tak. Nu har jeg længe siddet og rodet med scriptet og jeg har et problem jeg kan prøve at beskrive, du må meget gerne hjælpe mig.

Sådan her ser min kodestump ud der udskriver det jeg skal bruge. Mit problem er bare at når "Dansk opgave.doc" bliver lavet om til "Dansk noget andet.doc" bliver linket til Dansk opgave ændret til Dansk noget andet.doc! Hvad gør jeg??

$filliste = array();

if ($dirpointer = @opendir($dir)) {
  while($file = readdir($dirpointer)) {
      $ext = pathinfo($dir ."/". $file);
      if (in_array(strtolower(@$ext["extension"]), $viewtypes)) {
      $filliste[] = $file;
      }
  }
  closedir($dirpointer);
}

$filliste = str_replace("att.gif", "<img src=..\..\img\icons\att.gif border=0>", $filliste);
rsort($filliste);

for($i = 0; $i < count($filliste); $i++) {
      $ext = pathinfo($dir ."/". $filliste[$i]);
      echo "<tr><td><a href=\"index.php?vis=$filliste[$i]\"><IMG src='..\..\img/icons/opslag.gif' border='0'> ". basename($dir ."/". $filliste[$i], ".". $ext["extension"]) ."</A> </td></tr> \n";
}
Avatar billede schaefner Juniormester
04. december 2004 - 23:23 #3
<?php
$filliste = array();

if ($dirpointer = @opendir($dir)) {
    while($file = readdir($dirpointer)) {
        $ext = pathinfo($dir ."/". $file);
        if (in_array(strtolower(@$ext["extension"]), $viewtypes)) {
            $filliste[] = $file;
        }
    }
    closedir($dirpointer);
}

$filliste = str_replace("att.gif", "<img src=..\..\img\icons\att.gif border=0>", $filliste);
rsort($filliste);

for($i = 0; $i < count($filliste); $i++) {
      $ext = pathinfo($dir ."/". $filliste[$i]);
      $filename = str_replace("opgave", "noget andet", $filliste[$i]);
      echo "<tr><td><a href=\"index.php?vis=$filliste[$i]\"><IMG src='..\..\img/icons/opslag.gif' border='0'> ". basename($dir ."/". $filename, ".". $ext["extension"]) ."</A> </td></tr> \n";
}
?>
Avatar billede schaefner Juniormester
04. december 2004 - 23:32 #4
Forstår ikke rigtig hvorfor du bruger basename og pathinfo?

<?php
$filliste = array();

$viewtypes = array("jpg", "jpeg", "gif");

if ($dirpointer = @opendir($dir)) {
    while ($file = readdir($dirpointer)) {
        $ext = substr($file, strrrpos($file, ".")+1);
        if (in_array(strtolower($ext), $viewtypes)) {
            $filliste[] = $file;
        }
    }
    closedir($dirpointer);
}

$filliste = str_replace("att.gif", "<img src=..\..\img\icons\att.gif border=0>", $filliste);
rsort($filliste);

for ($i=0; $i<count($filliste); $i++) {
    $filename = str_replace("opgave", "noget andet", $filliste[$i]);
    print "<tr>\n";
    print "<td><a href=\"index.php?vis=".$filliste[$i]."\"><img src=\"..\..\img/icons/opslag.gif\" border=\"0\"> ".$filename."</a></td>\n";
    print "</tr>\n";
}
?>
Avatar billede michaelb.dk Nybegynder
05. december 2004 - 00:45 #5
Hej schaefner, tak for dit svar! Det virker sku stadig ikke helt :(

Får stadig fejl: Warning: main( testfil.txt): failed to open stream: No such file or directory og Warning: main(): Failed opening '<img src=..\\..\\img\\icons\\att.gif border=0> testfil.txt' for inclusion (include_path='.:/usr/local/lib/php')

og i dit seneste svar:

Fatal error: Call to undefined function: strrrpos()
Avatar billede schaefner Juniormester
05. december 2004 - 00:48 #6
Prøv lige:

<?php
$filliste = array();

$viewtypes = array("jpg", "jpeg", "gif");

if ($dirpointer = @opendir($dir)) {
    while ($file = readdir($dirpointer)) {
        $ext = substr($file, strrpos($file, ".")+1);
        if (in_array(strtolower($ext), $viewtypes)) {
            $filliste[] = $file;
        }
    }
    closedir($dirpointer);
}

rsort($filliste);

for ($i=0; $i<count($filliste); $i++) {
    $filename = str_replace("opgave", "noget andet", $filliste[$i]);
    print "<tr>\n";
    print "<td><a href=\"index.php?vis=".$filliste[$i]."\"><img src=\"..\..\img/icons/opslag.gif\" border=\"0\"> ".$filename."</a></td>\n";
    print "</tr>\n";
}
?>
Avatar billede michaelb.dk Nybegynder
05. december 2004 - 00:50 #7
så bliver der slet ingenting vist.
Avatar billede schaefner Juniormester
05. december 2004 - 00:54 #8
$viewtypes = array("jpg", "jpeg", "gif");

Den angiver hvilke filtyper/extensions den skal vise. Har du ændret, så det passer med de filer der evt. er i mappen?
Avatar billede mcgoat Nybegynder
05. december 2004 - 00:59 #9
skal det ikke være? <img src=\"../../img/icons/opslag.gif\" border=\"0\"> ??
Avatar billede mcgoat Nybegynder
05. december 2004 - 00:59 #10
det er jo / når det er en sti i html og \ når det er i win... ??
Avatar billede mcgoat Nybegynder
05. december 2004 - 00:59 #11
men er måske lige meget?
Avatar billede michaelb.dk Nybegynder
05. december 2004 - 01:02 #12
Det havde jeg da slet ikke set, opret et svar. Ved ikke hvor vigtige """ er her...
Avatar billede mcgoat Nybegynder
05. december 2004 - 01:04 #13
svar? hvem? hehe
Avatar billede mcgoat Nybegynder
05. december 2004 - 01:06 #14
bare husk at PHP ser en \ som om det næste tegn ikke skal tages med... så vil tro når du f.eks har: "<img src=..\..\img\icons\att.gif border=0>"

så bliver det nok <img src=...mgconstt.gif border=0> ??
Avatar billede schaefner Juniormester
05. december 2004 - 01:15 #15
<?php
/* Mappen der skal gennemøbes */
$dir = $_SERVER['DOCUMENT_ROOT']."/path/to/dir/";
/* Filtyper der skal bruges */
$fileTypes = array("jpg", "jpeg", "gif");

/* De ting der skal erstattes i filnavnet */
$search  = array("opgave");
/* ... og det det skal erstattes med */
$replace = array("noget andet");

$files = array();

if ($handle = @opendir($dir)) {
    while ($value = readdir($handle)) {
        $ext = substr($value, strrpos($value, ".")+1);
        if (in_array(strtolower($ext), $fileTypes)) {
            $files[] = $value;
        }
    }
    closedir($handle);
}

if (count($files) > 0) {
    rsort($files);

    print "<table border=\"2\">";
    foreach ($files AS $file) {
        $filename = str_replace($search, $replace, $file);
        print "<tr>\n";
        print "<td><a href=\"index.php?vis=".$file."\"><img src=\"../../img/icons/opslag.gif\" border=\"0\"> ".$filename."</a></td>\n";
        print "</tr>\n";
    }
    print "</table>";
} else {
    print "Der er ingen filer i mappen";
}
?>
Avatar billede schaefner Juniormester
05. december 2004 - 01:18 #16
Jeg skal i øvrigt ikke have nogen point. gonza.dk har jo allerede svaret på dit egentlige spørgsmål.

Måske du også kan bruge lidt inspiration her: http://schaefner.dk/files/temp/exp/564628/

Med venlig hilsen
Jesper Sørensen
Avatar billede michaelb.dk Nybegynder
05. december 2004 - 01:46 #17
Det har du ret i.
Avatar billede michaelb.dk Nybegynder
05. december 2004 - 01:46 #18
Og tak for linket, klikker videre.
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