Avatar billede mrg Nybegynder
18. april 2004 - 16:06 Der er 16 kommentarer og
1 løsning

Vis tilfældigt billede

Hej,

Jeg skal have vist et tilfældigt billede på en hjemmeside.

Billederne ligger i pics/sponsorer.

Er der en der kan tilpasse denne her, så den er til at sætte ind?
http://www.eksperten.dk/spm/381726#rid3607023

Kan man få den til at tage både .jpg og .gif med ?
Avatar billede mrg Nybegynder
18. april 2004 - 16:08 #1
Kan jo også lige klippe den over her...

<?
function Vis($dir) {
    if ($directory_handle = opendir($dir)) {
        while (false !== ($file = readdir($directory_handle))) {
            if (substr($file,-4) == ".jpg") {
                $filer[] = $file;
            }
        }
        closedir($directory_handle);
        echo "<img src='" .$dir. "/" .$filer[mt_rand(0,count($filer)-1)]. "'>";
    }
}
Vis('MyDir');
?>
Avatar billede roenving Novice
18. april 2004 - 16:15 #2
Egentlig et php-spørgsmål, men en simpel løsning:

            if (substr($file,-4) == ".jpg"||substr($file,-4) == ".gif") {
Avatar billede mrg Nybegynder
18. april 2004 - 16:28 #3
Ok - takker.

Jeg får nok også brug for at funktionen kan indarbejde en flash film der ligger i samme bibliotek.

Hvordan skal funktionen skrives så den også kan indarbejde en flash fil ?

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="170" height="60">
                        <param name="movie" value="pics/Sponsorer/rune_sono_170x60.swf">
                        <param name="quality" value="high">
                        <embed src="../pics/Sponsorer/rune_sono_170x60.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="170" height="60"></embed></object>
Avatar billede roenving Novice
18. april 2004 - 16:39 #4
Som du måske selv er klar over er det en helt anden operation, for der er fanden til forskel på at bede en af dine venner om at tage en seddel med, og så bede ham medbringe et lastvognstog med bøger ...

Det kan godt laves, men umiddelbart vil jeg fraråde det, medmindre der er specielt gode grunde !-)

Det du i så fald skal, er at finde ud af, om det tilfældigt udtrukne fil-navn så er en .swf-fil og derefter skrive noget fuldstændig anderledes kode fra din php-funktion ...
Avatar billede mrg Nybegynder
18. april 2004 - 16:50 #5
OK...jeg overvejer lige min situation, så...

Det er sponsor-logoer der skal "cirkulere" på en hjemmeside - og selvfølgelig er der en af dem der har sendt en swf-fil :-(

Men er det virkelig så stor en ændring der skal til ? Jeg ville tro (i min naivitet) at det var en ret simpel if-else ting ?
Avatar billede roenving Novice
18. april 2004 - 17:04 #6
Du har da principielt også ret i, at det 'er en simpel if-else'-ting, men vi har fat i grundlæggende forskellige typer html-elementer, så vi kan sikkert sagtens sætte dem ind det samme sted, men det betyder, at du har andre hensyn at tage i nogle situationer ...

F.eks. vil et img pænt holde sig der hvor det er, også hvis noget skulle folde sig henover (f.eks. en drop-down-menu), mens et object/embed vil forlange at have fronten ...

<?
function Vis($dir) {
    if ($directory_handle = opendir($dir)) {
        while (false !== ($file = readdir($directory_handle))) {
            if (substr($file,-4) == ".jpg"||substr($file,-4) == ".gif")||substr($file,-4) == ".swf"){
                $filer[] = $file;
            }
        }
        closedir($directory_handle);
        $act = $filer[mt_rand(0,count($filer)-1)];
        if(substr($act,-4) == ".swf"){
            echo '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="170" height="60">
                        <param name="movie" value="'.$act.'">
                        <param name="quality" value="high">
                        <embed src="'.$act.'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="170" height="60"></embed></object>';
        }else{
            echo "<img src='" .$dir. "/" .$act. "'>";
        }
    }
}
Vis('MyDir');
?>

-- absolut utestet !-)
Avatar billede roenving Novice
18. april 2004 - 17:06 #7
Hov, der skal selvfølgelig også $dir-parameteren med i object/embed-tingen !-)
Avatar billede mrg Nybegynder
18. april 2004 - 17:06 #8
Takker...
Avatar billede roenving Novice
18. april 2004 - 17:07 #9
Altså:

<param name="movie" value="'.$dir. '/' .$act.'">

og:

<embed src="'.$dir. '/' .$act.'"  ...
Avatar billede mrg Nybegynder
18. april 2004 - 17:11 #10
Ok...mangler vi ikke en masse \ omkring " ??? Nu hopper den vel ud af koden ?
Avatar billede roenving Novice
18. april 2004 - 17:26 #11
Nej, jeg brugte med vilje plinger (apostrof ' ) til at afgrænse den fler-linjede streng, så det skulle ikke give problemer !-)
Avatar billede mrg Nybegynder
18. april 2004 - 17:30 #12
Parse error: parse error, unexpected T_BOOLEAN_OR

til denne linie:
if (substr($file,-4) == ".jpg"||substr($file,-4) == ".gif")||substr($file,-4) == ".swf"){

Hvad piver den over ?
Avatar billede roenving Novice
18. april 2004 - 17:38 #13
) lige før || ...

så:

if (substr($file,-4) == ".jpg"||substr($file,-4) == ".gif"||substr($file,-4) == ".swf"){
Avatar billede mrg Nybegynder
18. april 2004 - 17:43 #14
SÅDAN - og det virker perfekt !!! GUTTERMAND !!!

Lægger du et svar ?

Ved ikke om de 30 point er nok - spørgsmålet blev jo lidt 'større' da der kom flash ind i billedet...??
Avatar billede roenving Novice
18. april 2004 - 17:58 #15
Velbekomme '-)

-- men det ville måske være hensigtsmæssigt, at du fremover lagde dine php-spørgsmål under script/php i stedet ...

Selvom jeg hoppede lidt i stolen (som det vist fremgår af @ 16:39:16 !-) mener jeg ikke vi har haft fat i et svært spørgsmål ...
Avatar billede mrg Nybegynder
18. april 2004 - 18:00 #16
Jep - kategorien smuttede - jeg troede oprindeligt at jeg bare skulle bruge noget HTML-script, og fik så ikke rettet det da jeg fandt scriptet...

;-) Martin
Avatar billede roenving Novice
18. april 2004 - 18:05 #17
-- og tak for points ;~}
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