Avatar billede vixmix Nybegynder
07. oktober 2004 - 11:56 Der er 45 kommentarer og
2 løsninger

autoskift fra mappe

Hej alle sammen, er der nogle af jer der har et script liggende til at skifte billede ? altså random, hvor den henter et forskelligt et fra en mappe ?

Jeg håber i kan hjælpe mig hurtigst muligt !
Avatar billede Slettet bruger
07. oktober 2004 - 12:02 #1
Har du mulighed for at omdøbe billederne? Det kan nemlig laves en hel det nemmere hvis de f.eks. er døbt 0.jpg til 10.jpg.

--
pacroon
Avatar billede vixmix Nybegynder
07. oktober 2004 - 12:08 #2
ja da. det er de faktisk gjort i forvejen
Avatar billede bojo Nybegynder
07. oktober 2004 - 12:12 #3
Ca dette så

echo "<img src='".rand(0,10)."'.jpg'></img";
Avatar billede Slettet bruger
07. oktober 2004 - 12:12 #4
<?php
echo "<img src='" .rand(0, 10). ".jpg'>";
?>

Det burde gøre det :)
Avatar billede Slettet bruger
07. oktober 2004 - 12:13 #5
Ah ja.. valid xhtml ;)
Avatar billede bojo Nybegynder
07. oktober 2004 - 12:14 #6
points til pacr00n :-)
Avatar billede vixmix Nybegynder
07. oktober 2004 - 12:14 #7
den finder selv stien ?
Avatar billede bojo Nybegynder
07. oktober 2004 - 12:15 #8
men glemte dog en > til sidst - hehe
Avatar billede bojo Nybegynder
07. oktober 2004 - 12:16 #9
nej vi har begge formodet at billederne er "her"

<?php
echo "<img src='sti til pics/" .rand(0, 10). ".jpg'></img>";
?>
Avatar billede sukos Juniormester
07. oktober 2004 - 12:17 #10
Valid xhtml? er det ikke <img src="kklkll" /> ??

Men ellers kan dette også:

<?php

//sti til mappen som skal åbnes for læsning. I dette tilfælde den aktuelle mappe
$path = opendir("./");

//filerne skal i et array for at kunne tælles
$billeder = array();

//Vi læser dir igennem for filer
while (false !== ($dir = readdir($path))){

//Laver et array med de filer i mappen som ikke skal vises
$ejvist = array(".", "..", "rand.php", "README.html", "HEADER.shtml", "rand.zip");

//Er filen i arrayet ejvist fortsætter vi
    if (in_array($dir, $ejvist)) {
continue;
    }else{

//"tilegner" filerne til arrayet billeder vi definerede tidligere
    $billeder[] = $dir;
    }
}
closedir($path);

//Tæl billeder og brug rand
$vistbillede = rand(0, count($billeder) -1);

//find størrelsen for det billede som skal vises
$str = GetImageSize($billeder[$vistbillede]);

//Lav output for visning af tilfældigt billede
echo "<img src=\"". $billeder[$vistbillede] ."\" ". $str[3] .">";

?>
Avatar billede Slettet bruger
07. oktober 2004 - 12:21 #11
sukos > Når det skal vise billeder ville det nok være mere hensigtsmæssigt at den ikke afviste de filer du indskriver, men i stedet kun tager alt som er *.jpg/*.JPG og andre billedextensions vha. fx substring. :)
Avatar billede vixmix Nybegynder
07. oktober 2004 - 12:25 #12
pacr00n, sådan:


<?php echo "<img src="random"'" .rand(0, 10). ".jpg' width="163" height="168">"; ?>
og hvor får jeg den til at tage den korrekte sti?
Avatar billede Slettet bruger
07. oktober 2004 - 12:28 #13
Normalt ved at lægge .php-filen i det dir hvor billederne ligger :)
Avatar billede sukos Juniormester
07. oktober 2004 - 12:29 #14
pacr00n -> Jahh, så kunne man jo tjekke på getimagesize :O)
Avatar billede vixmix Nybegynder
07. oktober 2004 - 12:30 #15
øv .. det skal nu være på alle mine sider :/det kan ikke laves på en nem lille måde ?
Avatar billede Slettet bruger
07. oktober 2004 - 12:33 #16
Hm, tjoeh, så skal du vidst ud i noget med at liste hele din rod og frafiltrere alt hvad der er *.jpg / *.JPG - så det kunne nok lade sig gøre, jo.. men nemt og småt, det er jeg ikke sikker på :)
Avatar billede vixmix Nybegynder
07. oktober 2004 - 12:34 #17
hehe øv øv .. :/
Avatar billede sukos Juniormester
07. oktober 2004 - 12:35 #18
Ligger billederne ikke i samme dir?
Avatar billede sukos Juniormester
07. oktober 2004 - 12:38 #19
Jeg mener, alle de billeder som skal bruges, ligger de ikke i samme dir?
Avatar billede vixmix Nybegynder
07. oktober 2004 - 12:38 #20
jo alle billeder ligger i samme.. men de ligger ikke sammen med php filen, billederne ligger i mappen "random" ved filen
Avatar billede bojo Nybegynder
07. oktober 2004 - 12:40 #21
jeg tror her misforstås noget.

Er det ikke bare som allerede foreslået

echo "<img src='/billeder/" .rand(0, 10). ".jpg'></img>";

evt med sukos billed tæller i i stedet for hardkodet 10 billeder
Avatar billede vixmix Nybegynder
07. oktober 2004 - 12:41 #22
sukos på din her:

echo "<img src=\"". $billeder[$vistbillede] ."\" ". $str[3] .">"; 

kan man sætte en bestemt størrelse på billedet ?
Avatar billede sukos Juniormester
07. oktober 2004 - 12:47 #23
Du bruger jo bare:
echo "<img src=\"". $billeder[$vistbillede] ."\" width=\"163\" height=\"168\">";

Men her ligger de også i samme dir!
Men hvor ligger dine billeder???
Avatar billede vixmix Nybegynder
07. oktober 2004 - 12:48 #24
i mappen random
Avatar billede sukos Juniormester
07. oktober 2004 - 12:53 #25
echo "<img src='/random/". rand(0, 10) .".jpg' width='163' height='168' />";
Avatar billede vixmix Nybegynder
07. oktober 2004 - 12:53 #26
den virker nogenlunde..

jeg har:

<?php

//sti til mappen som skal åbnes for læsning. I dette tilfælde den aktuelle mappe
$path = opendir("random/");

//filerne skal i et array for at kunne tælles
$billeder = array();

//Vi læser dir igennem for filer
while (false !== ($dir = readdir($path))){

//Laver et array med de filer i mappen som ikke skal vises
$ejvist = array(".", "..", "rand.php", "README.html", "HEADER.shtml", "rand.zip");

//Er filen i arrayet ejvist fortsætter vi
    if (in_array($dir, $ejvist)) {
continue;
    }else{

//"tilegner" filerne til arrayet billeder vi definerede tidligere
    $billeder[] = $dir;
    }
}
closedir($path);

//Tæl billeder og brug rand
$vistbillede = rand(0, count($billeder) -1);

//find størrelsen for det billede som skal vises
$str = GetImageSize($billeder[$vistbillede]);
?>
<HTML>
<HEAD>
<TITLE>index</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.tekst {  font-family: Arial, Helvetica, sans-serif; color: #000000; text-decoration: none}
-->
</style>
</HEAD>
<BODY BGCOLOR=#FFFFFF LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0 text="#000000" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<TABLE WIDTH=775 BORDER=0 CELLPADDING=0 CELLSPACING=0 align="center">
  <TR>
       
    <TD COLSPAN=5> <IMG SRC="images/tite.gif" WIDTH=775 HEIGHT=95 ALT=""></TD>
        <TD>
            <IMG SRC="images/spacer.gif" WIDTH=1 HEIGHT=95 ALT=""></TD>
    </TR>
    <TR>
        <TD COLSPAN=5>
            <IMG SRC="images/index_02.gif" WIDTH=775 HEIGHT=27 ALT=""></TD>
        <TD>
            <IMG SRC="images/spacer.gif" WIDTH=1 HEIGHT=27 ALT=""></TD>
    </TR>
    <TR>
        <TD COLSPAN=3>
            <IMG SRC="images/index_03.gif" WIDTH=606 HEIGHT=15 ALT=""></TD>
       
    <TD COLSPAN=2 ROWSPAN=2>
      <table width="100%" border="0" cellspacing="0" height="155" cellpadding="0">
        <tr>
          <td>
            <table width="168" border="0" cellspacing="2" height="154" cellpadding="0" align="right">
              <tr>
                <td bgcolor="520B0B">
                <center> <? echo "<img src=\"". $billeder[$vistbillede] ."\" width=\"163\" height=\"168\">"; ?></center>
                </td>
              </tr>
            </table>
          </td>
        </tr>
      </table>


men den siger:


Warning: Unable to access 3.JPG in /usr/www/vix-mix_dk/public_html/bh/skole.php on line 30

Warning: getimagesize: Unable to open '3.JPG' for reading. in /usr/www/vix-mix_dk/public_html/bh/skole.php on line 30
Avatar billede vixmix Nybegynder
07. oktober 2004 - 12:54 #27
linje 30 er $str = GetImageSize($billeder[$vistbillede]); ??
Avatar billede sukos Juniormester
07. oktober 2004 - 12:55 #28
Det er fordi stien ikke er defineret.
Og hvis du vil bruge en fast str. er de tikke nødvendigt med getimagesize

For sportens skyld, har jeg lige gang i et lidt bedre script! :O)
Avatar billede sukos Juniormester
07. oktober 2004 - 13:00 #29
Men du kan vel blot:

<?php

//sti til mappen som skal åbnes for læsning. I dette tilfælde den aktuelle mappe
$path = opendir("random/");

//filerne skal i et array for at kunne tælles
$billeder = array();

//Vi læser dir igennem for filer
while (false !== ($dir = readdir($path))){

//Laver et array med de filer i mappen som ikke skal vises
$ejvist = array(".", "..", "rand.php", "README.html", "HEADER.shtml", "rand.zip");

//Er filen i arrayet ejvist fortsætter vi
    if (in_array($dir, $ejvist)) {
continue;
    }else{

//"tilegner" filerne til arrayet billeder vi definerede tidligere
    $billeder[] = $dir;
    }
}
closedir($path);

//Tæl billeder og brug rand
$vistbillede = rand(0, count($billeder) -1);
?>
<HTML>
<HEAD>
<TITLE>index</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.tekst {  font-family: Arial, Helvetica, sans-serif; color: #000000; text-decoration: none}
-->
</style>
</HEAD>
<BODY BGCOLOR=#FFFFFF LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0 text="#000000" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<TABLE WIDTH=775 BORDER=0 CELLPADDING=0 CELLSPACING=0 align="center">
  <TR>
     
    <TD COLSPAN=5> <IMG SRC="images/tite.gif" WIDTH=775 HEIGHT=95 ALT=""></TD>
        <TD>
            <IMG SRC="images/spacer.gif" WIDTH=1 HEIGHT=95 ALT=""></TD>
    </TR>
    <TR>
        <TD COLSPAN=5>
            <IMG SRC="images/index_02.gif" WIDTH=775 HEIGHT=27 ALT=""></TD>
        <TD>
            <IMG SRC="images/spacer.gif" WIDTH=1 HEIGHT=27 ALT=""></TD>
    </TR>
    <TR>
        <TD COLSPAN=3>
            <IMG SRC="images/index_03.gif" WIDTH=606 HEIGHT=15 ALT=""></TD>
     
    <TD COLSPAN=2 ROWSPAN=2>
      <table width="100%" border="0" cellspacing="0" height="155" cellpadding="0">
        <tr>
          <td>
            <table width="168" border="0" cellspacing="2" height="154" cellpadding="0" align="right">
              <tr>
                <td bgcolor="520B0B">
                <center><img src="/random/<? echo $billeder[$vistbillede]; ?>" width="163" height="168"></center>
                </td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
Avatar billede vixmix Nybegynder
07. oktober 2004 - 13:04 #30
okay hehe. ingen fejl nu. Men den viser ikke billedet :/
Avatar billede vixmix Nybegynder
07. oktober 2004 - 13:05 #31
men stien på billedet virker fint !
Avatar billede sukos Juniormester
07. oktober 2004 - 13:11 #32
Bortset fra at pacr00n's jo burde virke, hvis du smider /random/ på før rand, så kan du også prøve med dette som en include istedet

<?php
//dirpath ved visning af billede i browser
$webpath = "/random/";

// path, den fulde sti, til brug forlæsning af dir og tjek på getimagesize (er selv til "fuld sti")
$fullpath = $_SERVER["DOCUMENT_ROOT"]. $webpath;


$path = opendir($fullpath);

$billeder = array();

while (false !== ($fil = readdir($path))){
    if (is_dir($fil) || false == getimagesize($fullpath . $fil)) {
continue;
    }
$billeder[] = $fil;
}
closedir($path);

$id = array_rand($billeder);

echo"<img src=\"". $webpath . $billeder[$id] ."\" width=\"163\" height=\"168\">";

?>

Så i stedet for
<center><img src="/random/<? echo $billeder[$vistbillede]; ?>" width="163" height="168"></center>

bruger du
<center><?php include("random.php"); ?></center>

hvis elelrs random.php ligger i samme dir som filen den includes fra.
Avatar billede vixmix Nybegynder
07. oktober 2004 - 13:16 #33
det virker fint bortset fra billedet bare ikke kommer.. den siger en fin sti på billedet også. den vil bare ikke vise det
Avatar billede sukos Juniormester
07. oktober 2004 - 13:19 #34
Og hvad står der i htmlkoden, hvis du prøver med en "vis kilde"???
Avatar billede vixmix Nybegynder
07. oktober 2004 - 13:32 #35
<TD COLSPAN=2 ROWSPAN=2>
      <table width="100%" border="0" cellspacing="0" height="155" cellpadding="0">
        <tr>
          <td>
            <table width="168" border="0" cellspacing="2" height="154" cellpadding="0" align="right">
              <tr>
                <td bgcolor="520B0B">
                <center><img src="/random/3.jpg" width="163" height="168"></center>
                </td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
    </TD>
Avatar billede bojo Nybegynder
07. oktober 2004 - 13:33 #36
indskudt bemærkning til sukos, $_SERVER["DOCUMENT_ROOT"] virker ikke hos Freepaq hvor DOCUMENT_ROOT  = /usr/local/share/www/ og dette er ikke den absolutte rod, det er derimod substr($SCRIPT_FILENAME, 0, strpos($SCRIPT_FILENAME, $SCRIPT_NAME) + 1) som på giver /usr/local/share/www/c/e/xxxxxxxxx/ ( hvor xxxxxxxxx er domænenavnet )
Avatar billede sukos Juniormester
07. oktober 2004 - 13:36 #37
jahh, og det skoder osse på en IIS, vist nok, c:\\WWWinetpub\\random\\ .........
Så den er ret "relativ"
Men takker for forslag!!!
Avatar billede vixmix Nybegynder
07. oktober 2004 - 14:02 #38
´du ved ikke lige hvad fejlen er sukos ?
Avatar billede sukos Juniormester
07. oktober 2004 - 14:08 #39
Næhh, men kan du smide et link til siden?
Avatar billede vixmix Nybegynder
07. oktober 2004 - 14:11 #40
ja http://www.vix-mix.dk/bh/skole.php

det skal siges det kun er beta :). kodningen skal først op og køre .. så bliver der lavet orden på designet og siderne.

Og den er IKKE ægte. det er en test vi skal lave
Avatar billede sukos Juniormester
07. oktober 2004 - 14:15 #41
Du har "random" liggende i "bh" dir'et
Så læg random i roden, eller brug
$webpath = "/bh/random/";

eller:

echo "<img src='/bh/random/". rand(0, 10) .".jpg' width='163' height='168' />";

:O)
Avatar billede vixmix Nybegynder
07. oktober 2004 - 14:28 #42
kanon .. jeg fik det til at virke.. der var bare en "/" for meget.. smider du et svar?
Avatar billede sukos Juniormester
07. oktober 2004 - 14:30 #43
johh, men synes nu også pacr00n fortjener! :O)
Avatar billede sukos Juniormester
07. oktober 2004 - 14:33 #44
"fidusen" med at bruge / som start på stien, er jo at ligemeget hvor i dirstruktur du vil hente noget, vil serveren altid starte fra roden af domænet.

Hvis du f.eks. includer scriptet fra "bh/noget/andet/og/mere/"
vil du altid få vist fra
/random/
i stedet for at skulle bruge f.eks. ../../../../random/
Avatar billede sukos Juniormester
07. oktober 2004 - 14:34 #45
ligemeget hvor i dirstruktur du vil hente noget ==
ligemeget hvor i dirstruktur du befinder dig
Avatar billede vixmix Nybegynder
07. oktober 2004 - 14:36 #46
hehe ja det er rigtig :o).

Jeg siger mange tak for hjælpen. Jep naturligvis får han lidt ;).
Avatar billede vixmix Nybegynder
07. oktober 2004 - 14:37 #47
sådan.

-lukket-
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