Avatar billede mcardle Nybegynder
28. maj 2004 - 09:55 Der er 18 kommentarer og
1 løsning

Scanning af filnavne og indsæt i HTML-dokument

Hej Eksperter...
Jeg skal ved hjælp af et php-script kunne læse op til flere filer fra en mappe på webstedet og sætte dem ind i mit HTML-dokument automatisk.


//McArdle
Avatar billede trevi Nybegynder
28. maj 2004 - 10:27 #1
kan du forklare lidt nærmere?

tænker du på

Include "fil.php";
eller
Require "fil.php";  ??
Avatar billede mcardle Nybegynder
28. maj 2004 - 10:34 #2
Jeg er ikke så god til PHP, men jeg er i gang med at lave en side, hvor jeg har lavet en upload-funktion til billeder, så de kommer op i en mappe på nettet... Når de så er kommet op i mappen skal billederne lægges ind på siden næste gang den bliver loadet... Jeg har ikke lavet noget script til det, så det er lidt fra bunden af... Jeg ved ikke hvad jeg skal skrive i scriptet...

//McArdle
Avatar billede trevi Nybegynder
28. maj 2004 - 10:42 #3
hvis den bare skal vise billederne i den mappe du har kan du bare bruge dette script:
dette skal ind i <head>
<script language="JavaScript">
// SETUPS:
// ===============================

// Set the horizontal and vertical position for the popup

PositionX = 100;
PositionY = 100;

// Set these value approximately 20 pixels greater than the
// size of the largest image to be used (needed for Netscape)

defaultWidth  = 99;
defaultHeight = 86;

// Set autoclose true to have the window close automatically
// Set autoclose false to allow multiple popup windows

var AutoClose = true;

// Do not edit below this line...
// ================================
if (parseInt(navigator.appVersion.charAt(0))>=4){
var isNN=(navigator.appName=="Netscape")?1:0;
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}
var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;
var optIE='scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY;
function popImage(imageURL,imageTitle){
if (isNN){imgWin=window.open('about:blank','',optNN);}
if (isIE){imgWin=window.open('about:blank','',optIE);}
with (imgWin.document){
writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');
writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);');
writeln('width=100-(document.body.clientWidth-document.images[0].width);');
writeln('height=100-(document.body.clientHeight-document.images[0].height);');
writeln('window.resizeTo(width,height);}');writeln('if (isNN){');     
writeln('window.innerWidth=document.images["George"].width;');writeln('window.innerHeight=document.images["George"].height;}}');
writeln('function doTitle(){document.title="'+imageTitle+'";}');writeln('</sc'+'ript>');
if (!AutoClose) writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
else writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
writeln('<img name="George" src='+imageURL+' style="display:block"></body></html>');
close();       
}}
</script>

og selve scriptet sætter du bare ind et sted på siden:


<?
$dir = "MAPPE NAVN HER/";
// Det antal billeder der skal vises ad gangen
$antal = 10;
// Henter startnummeret.
$num = ($_GET['num']) ? (int) $_GET['num']-1 : 0;
function GetFileName($file) {
$part = explode(".", $file);
$file = "";
for($i=0;$i<count($part);$i++) {
  $file = $file . $part[$i];
}

return $file;
}

if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != ".." && $file != "Thumbs.db" && $file != "thumbs" && $file != "") {
            $files[] = $file;

        }
    }
    closedir($handle);
}
if (is_array($files)) {
    $td = 0;
    sort($files);
    echo "<center>";
    // Tæller hvor mange filer der er
    $antal_filer = sizeof($files);
    // Sætter det næste og forrige nummer
    $nextnum = $num+$antal+1;
    $prevnum = $num-$antal;
    // Tester om der skal laves en forrige eller næste link
    if ($num >= $antal) echo "<a href='galleri.php?num=$prevnum' class=\"tekst_link\">Forrige $antal</a>&nbsp;&nbsp;&nbsp;";
    if ($antal_filer > $nextnum) echo "<a href='galleri.php?num=$nextnum' class=\"tekst_link\">Næste $antal</a>";
    echo "</center>\n<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" class=\"tekst_link\" align=\"center\"> ";
      for($i=$num;$i<$num+$antal;$i++){
            $td++;
            if($td == 1) {echo "<tr>\n"; }
            // Tester om der er flere billeder at lave
            if ($i<sizeof($files)){
            ?>
          <table cellpadding="0" cellspacing="5" align="left">
            <tr>
              <td align="center" style="border: 1px solid #ffffff;"><a href="java script:popImage('<? echo $dir.$files[$i]; ?>','<? echo $i; ?>')">
                <img src="<? echo $dir.$files[$i]; ?>" border="0" width="99" height="86">
                </a> </td>
            </tr>
      </table>
        <?
            }
            if($td == $antal) {echo "</tr>\n"; $td = 0;}
    }
} else {
    echo "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: White;'>Der findes i øjeblikket ingen billeder i dette galleri.</div>";
}
?>
Avatar billede mcardle Nybegynder
28. maj 2004 - 10:47 #4
Det var bare det... Mange tak...
Giver du lige et svar...

//McArdle
Avatar billede trevi Nybegynder
28. maj 2004 - 10:52 #5
Det var så lidt. virker det ?
Avatar billede mcardle Nybegynder
28. maj 2004 - 10:53 #6
Ved det ikke... Skal lige have lavet nogle justeringer...
Avatar billede trevi Nybegynder
28. maj 2004 - 11:09 #7
bare i orden
Avatar billede mcardle Nybegynder
28. maj 2004 - 11:15 #8
Nej, det virker ikke så godt, men jeg prøver bare selv at rette det til...
Avatar billede trevi Nybegynder
28. maj 2004 - 11:19 #9
Ja det skal bare lige rettes til .. det skulle meget gerne virke :)..

$dir = "MAPPE NAVN HER/";

der skal du skrive stien til mappen.. hvis du har lagt denne php side i mappen bag ved hvor du har dine billeder skal du bare skrive

$dir = "billeder/";

så tager den som når du skriver:

www.ditdomain.dk/test/billeder

(hvor scriptet ligger i mappen test)
Avatar billede mcardle Nybegynder
28. maj 2004 - 11:23 #10
Den er skriver koden på skærmen...

http://www.klappekaniner.dk

Gå ind i menuen "Find Din Kanin" og "Dværgkanin"
Avatar billede trevi Nybegynder
28. maj 2004 - 11:32 #11
du skal kalde siden .php til sidst
Avatar billede trevi Nybegynder
28. maj 2004 - 11:33 #12
ikke .html
Avatar billede dejbjerg Nybegynder
28. maj 2004 - 12:01 #13
function ListFiler($bibliotek) {

  if($bib = @opendir($bibliotek)) {
 
    while (false !== ($fil = readdir($bib))) {
      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
          $fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a>";
      }
    }
    closedir($bib);

    if(is_array($fil_liste)) {
      $liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
    } else {
      $liste = "<li>Ingen filer på lager</li>";
    }
    return "<h1>På lager:</h1><ul>" . $liste . "</ul>";
  } else {
    die("Kunne ikke åbne biblioteket: " . $bibliotek);
  }

}

kaldes så med

$liste = ListFiler("STIEN TIL DINE FILER");
echo $liste;
Avatar billede mcardle Nybegynder
28. maj 2004 - 12:08 #14
Jeg har kaldt siden .php, men siden er jo inde i en iframe, så du kan ikke se det...
Avatar billede sukos Juniormester
28. maj 2004 - 14:30 #15
Siden virker slet ikke i NS
Avatar billede sukos Juniormester
28. maj 2004 - 14:42 #16
æhh, linkene altså! :O)

Men en anden ting,
Du har:
<!--
<?php
og
?>
-->

og det gør åbenbart at PHP ikke afvikles!
Avatar billede sukos Juniormester
28. maj 2004 - 14:43 #17
Altså, du skal fjerne
<!-- før <?php
og
--> efter ?>
Avatar billede mcardle Nybegynder
28. maj 2004 - 18:54 #18
Det ved jeg godt... Har bare brugt dem til at se om jeg skulle bruge det script eller det andet...
Avatar billede mcardle Nybegynder
28. maj 2004 - 18:56 #19
Der er nemlig 2 scripts i samme phpfil og de gør det samme, men jeg skulle bare se hvad der virkede og hvad der ikke virkede...

//McArdle ;o)
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