Permalänk
Medlem

Bilder som ej hittas.

Är det någon som vet om det finns ett script som gör att man kan ha sin egen lilla bild istället för "orginal krysset" om en bild inte hittades?

Jag har nämligen gjort ett slump script där den slumpar fram 8 nya bilder varje gång sidan uppdateras och i scriptet har jag tex. gjort så att den slumpar fram bilder mellan 1 och 500, så att jag kan lägga in bilder eftersom...just nu har jag kanske 50 och därför visar den "krysset" när en slumpad bil inte finns.

Frågan är aldså om det går att fixa en egen bild där jag kan skriva typ: Ingen bild. Eller om någon har ett bättre slump script som bara slumpar bilder som finns.

tack på förhand //danne

Permalänk
Medlem

Läs in bilderna från den specifika mappen i en array, motsv.
"Slumpa" sedan.
Rekommderar php och http://se2.php.net/readdir.

Visa signatur

Old math teachers never die, they just tend to infinity.

Permalänk
Medlem

random_bild.php

<?php $fil_namn = "bild.txt"; $filen = file($fil_namn); srand((double)microtime()*1000000); $bilden = $filen[array_rand($filen)]; echo $bilden; ?>

bild.txt

<img src="bild1.jpg"> <img src="bild2.jpg"> <img src="bild3.jpg"> <img src="bild4.jpg">

Något sådant kanske?

ÄNDRAT: Kan vara jobbigt och lägga in alla bilder i textfilen.. hmm tidigare talares metod är bättre.. får se om jag orkar fixa lite kod

Permalänk
Medlem

<?php function randonpic($bildarray){ return "<img src=\"".$bildarray[rand(0, (count($bildarray)-1));]."\" alt=\"Random Bild\" />"; } #Bildarray med bilder i $bilder = array( "bild1.png", "bild2.png" ); randompic($bilder); ?>

så ska det nog funka

Permalänk
Medlem

<?php function rand_bilder($path){ if ($handle = opendir($path)){ $bilder = array(); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $bilder[] = '<img src="'.$path.'/'.$file.'">'; } } echo $bilder[rand(0, (count($bilder)-1))]; closedir($handle); } } rand_bilder('bilder') /* ersätt bilder med den mapp där bilderna ligger*/ ?>

En kodsnutt av mig..

ÄNDRAT: Tog bort lite skräpkod

Permalänk
Medlem

Om du med CSS sätter en bakgrundsbild på en (eller flera) img-tagg så visas den nog om bilden inte kan laddas. Fast den kanske får ett kryss ovanpå sig?

Permalänk
Medlem

Malesca: intressant metod och betydligt lättare, men är dålig på css så hur skulle det gå till?

Kejsarn: Är helt ny med php, hur exakt får jag det att fungera?

Tack så mycket!! //danne
-----------------------------------
www.dunkadunka.cjb.net

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av rokk

Kejsarn: Är helt ny med php, hur exakt får jag det att fungera?

Tack så mycket!! //danne
-----------------------------------
www.dunkadunka.cjb.net

Placera

<?php function rand_bilder($path){ if ($handle = opendir($path)){ $bilder = array(); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $bilder[] = '<img src="'.$path.'/'.$file.'">'; } } echo $bilder[rand(0, (count($bilder)-1))]; closedir($handle); } } ?>

exempelvis längst upp på den sida du vill visa slumpbilderna.

Sedan där på sidan där du vill visa den slumpade bilden placerar du

<?php rand_bilder('bilder'); ?>

'bilder' (det inom paranteserna) ska du ersätta med den mapp där dina bilder är placerade.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av rokk
Malesca: intressant metod och betydligt lättare, men är dålig på css så hur skulle det gå till?

<img src="x.jpg" alt="" style="background:url(finnsinte.jpg);" />

Det går också att ha det som en generell regel för samtliga bilder, eller samtliga bilder inuti ett visst sidelement, t.ex. Det känns lite för omfattande att förklara, men testa det ovan och om det blir bra kan du ju fråga igen.

Man kan också positionera bakgrunden och välja huruvida den ska repeteras, mm.

Permalänk
Medlem

Krysset hamnar dessvärre åvanpå (IE 6)

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Kejsarn
Placera

<?php function rand_bilder($path){ if ($handle = opendir($path)){ $bilder = array(); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $bilder[] = '<img src="'.$path.'/'.$file.'">'; } } echo $bilder[rand(0, (count($bilder)-1))]; closedir($handle); } } ?>

exempelvis längst upp på den sida du vill visa slumpbilderna.

Sedan där på sidan där du vill visa den slumpade bilden placerar du

<?php rand_bilder('bilder'); ?>

'bilder' (det inom paranteserna) ska du ersätta med den mapp där dina bilder är placerade.

php Koden kommer bara upp i webläsaren, inget annat händer. Vad gör jag?

Permalänk
Citat:

Ursprungligen inskrivet av rokk
php Koden kommer bara upp i webläsaren, inget annat händer. Vad gör jag?

Du har inte PHP installerat på din webbserver.
Läs mer och tanka det på php.net.

Visa signatur

"Knowledge amplification. What he learns, we all learn. What he knows, we all benefit from."

Permalänk
Medlem

men det borde väll fungera då jag bara testar det från disken??

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av rokk
php Koden kommer bara upp i webläsaren, inget annat händer. Vad gör jag?

Fel, antagligen. Du måste köra den genom webbservern, vilken tolkar och utför PHP-koden. Kör du filen i webbläsaren (c:/minsida/hejhej.php), så kommer den [i]inte[/inte] gå genom PHP och därför bara gå genom HTML-tolkaren i webbläsaren. Eftersom det inte är HTML, kommer det skrivas ut som ren text.

Kör den via http://localhost/. Fungerar inte det, får du gärna berätta hur du gör med övriga PHP-skript som körs i webbläsaren.

EDIT: Dags att sova nu känner jag. Börjar sluddra och uttrycka mig lustigt...

Visa signatur

We shall never cease from exploration And the end of all our exploring Will be to arrive where we started And know the place for the first time.
- T. S. Eliot

Permalänk
Medlem

om du har php instellerat på din burk så borde det fungera.. inte annars. kolla upp om din host har php-stöd. har den inte det får du byta om du vill kunna använda php-script.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Rippo
Krysset hamnar dessvärre åvanpå (IE 6)

Ah. Kanske funkar med javascript? Nåt i stil med (otestat)

<img src="x.jpg" alt="" onerror="this.src='finnsinte.jpg';" />

rokk: nej, du måste ha en webbserver och PHP installerat för att PHP-kod ska köras. Webbläsaren kan översätta HTML till en webbsida, men du behöver installera PHP för att göra om PHP-kod till HTML.

Permalänk
Medlem

rippo: det vet jag...och den har det!...men är inte säker på om det finns på burken..antagligen ej

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Malesca

<img src="x.jpg" alt="" onerror="this.src='finnsinte.jpg';" />

det röda krysset blinkar till, och sen ersätts det med bilden (IE).. fuckar upp firefox helt dock.

rokk: du kan ju alltid ladda upp filerna med ftp:n varje gång du uppdaterar.. antingen det eller installera php och webservermjukvara.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Malesca
Ah. Kanske funkar med javascript? Nåt i stil med (otestat)

<img src="x.jpg" alt="" onerror="this.src='finnsinte.jpg';" />

rokk: nej, du måste ha en webbserver och PHP installerat för att PHP-kod ska köras. Webbläsaren kan översätta HTML till en webbsida, men du behöver installera PHP för att göra om PHP-kod till HTML.

Jag tyckte det lät bra, är mera "hemma" med java. Så jag testade men utan fråmgång =(
varför tror du att följande inte fungerar?

<a href=\"003.jpg\" target=\"_blank\"><img height=\"100\" src=\"003.jpg\" width=\"100\" border=\"0\" onerror="this.src=\"finnsinte.jpg\"></a>";

Permalänk
Medlem

Du behöver alltså inte ha det där inom <script></script>-taggar. Om du av nån anledning måste ha \ framför dina citationstecken så ha det även framför detta: onerror=" och byt sedan ut de runt finnsinte.jpg mot ' (eller \') så går det kanske bättre.

Ganska kul problem att försöka lösa, men jag skulle egentligen försöka lösa det i PHP istället typ som folk gjort ovan. http://ematte.se/tut/wamp.php

Man kan säkert också konfigurera Apache så att bilder som inte finns ersätts med någon defaultbild.

Permalänk
Medlem

Menar du såhär så fungerar det ej....

laenk[i++] = "<a href=\"003.jpg\" target=\"_blank\"><img height=\"100\" src=\"003.jpg\" width=\"100\" border=\"0\" onerror=\"\ this.src='finnsinte.jpg'></a>";

Joo php är säkert en bättre lösning..men det är så jävla komplicerat för en som inte kan (jag) Men om jag vill använda php...hur får jag det att fungera? När jag testar får jag bara upp koden i webläsaren...då säger ni att det beror på att jag inte har php installerat på burken. Och det köper jag! Men varför är det samma grej om jag skickar upp det på nätet? Det står på mitt webhotells hemsida att dem stöder php!

Permalänk
Medlem

Har filen med php-koden filändelsen .php?

Visa signatur

..:: RiJo ::..
Computer: Lenovo X300
Platform: Gentoo

Permalänk
Medlem

nej...som jag tolkade det skulle jag lägga in all kod i html dockumentet!?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av rokk
nej...som jag tolkade det skulle jag lägga in all kod i html dockumentet!?

hmm.. du ska döpa öm det html dokument du har med phpkoden till dittnamn.php.. Vilken lärare man är..

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Kejsarn
Placera

<?php function rand_bilder($path){ if ($handle = opendir($path)){ $bilder = array(); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $bilder[] = '<img src="'.$path.'/'.$file.'">'; } } echo $bilder[rand(0, (count($bilder)-1))]; closedir($handle); } } ?>

exempelvis längst upp på den sida du vill visa slumpbilderna.

Sedan där på sidan där du vill visa den slumpade bilden placerar du

<?php rand_bilder('bilder'); ?>

'bilder' (det inom paranteserna) ska du ersätta med den mapp där dina bilder är placerade.

hur ska jag nu göra??...ska jag lägga den första kod-snutten i ett eget dokument som jag döper till x.php och den andra biten i html dokumentet där jag vill visa bilderna?

Permalänk
Medlem

Lägg

<?php function rand_bilder($path){ if ($handle = opendir($path)){ $bilder = array(); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $bilder[] = '<img src="'.$path.'/'.$file.'">'; } } echo $bilder[rand(0, (count($bilder)-1))]; closedir($handle); } } ?>

allra överst i html-filen. Där du vill ha bilden/bilderna lägger du in

<?php rand_bilder('bilder'); ?>

mellan <body> och </body>. Sedan byter du filändelsen på din fil till .php, ex: index.php

Edit: allt ska/bör ligga i samma fil om det var oklart.

Visa signatur

..:: RiJo ::..
Computer: Lenovo X300
Platform: Gentoo

Permalänk
Medlem

Haha okej, nu fungerar det....men jag måste vara riktigt jävlig och säga att jag inte är nöjd ....det är nämligen så att jag vill att bilden ska visas i ett mindra format typ 200*200 px och när man klickar på den så blir den "naturlig storlek". Aldså är det igentligen en slumpad länk jag vill åt men som visar bilen....precis som jag hade gjort förut med hjälp av java:

laenk[i++] = "<a href=\"003.jpg\" target=\"_blank\"><img height=\"100\" src=\"003.jpg\" width=\"100\" border=\"0\" <a>";

problemet jag hade då var ju att den slumpade bilder även som inte låg i mappen.

Är det svårt att göra en variant av php:n som fixar samma grej?...(att den visar bilden som miniatyr) --//tack på mycket!!

Permalänk
Medlem

Ersätt den översta koden med denna:

<?php function rand_bilder($path){ if ($handle = opendir($path)){ $bilder = array(); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $bilder[] = '<a href="'.$path.'/'.$file.'" target="_blank"><img src="'.$path.'/'.$file.'" width="200px" height="200px"></a>'; } } echo $bilder[rand(0, (count($bilder)-1))]; closedir($handle); } } ?>

Visa signatur

..:: RiJo ::..
Computer: Lenovo X300
Platform: Gentoo

Permalänk
Medlem

underbart bra....tack!!

Permalänk
Medlem

Edit: lust att posta länk så man får se hur det blev?

Visa signatur

..:: RiJo ::..
Computer: Lenovo X300
Platform: Gentoo