Gå til innhold

Ordentlig roterende bilde


Anbefalte innlegg

Videoannonse
Annonse
Gjest Slettet+6132
Noen som vet hvordan man kan lage et roterende gif-bildefil ut av PHP og uten hjelp av .htaccess? Må lage SELVESTE fila! Vet det finnes på hjemmesiden til en dude her på forumet. Tror den var nynorsk eller no.

Den tok jeg ikke helt. Hva har gif-bilder og .htaccess med hverandre å gjøre? Orker du å forklare litt bedre, så kan man hjelpe. Hvis du mener slik greie på registrering hvor du har noen tall med rotete bakgrunn så er det bare å lage bakgrunnen og så putte på bokstavene med PHP ;)

Lenke til kommentar
Gjest Slettet+6132
Har sett scripts som lager roterende gif-bilder men bruker ei .htaccess-fil!

Er litt på bærtur her. Enkelt sagt: Hvordan lage en roterende avatar til HW-forumet uten bruk av .htaccess-fil? Som roterer bilder fra en angitt mappe!

Åja, du mener slik at du bytter bilde for hver request?

 

er jo bare å gjøre noe som feks:

 

$bilder = array("av1.gif", "av2.gif", "av3.gif");

$total = count($bilder);

$output = rand("0", "$total");

 

$bilde = $bilder[$output];

 

Så må du jo bruke PHPs bildefunksjoner for å printe ut bilde da. Husk at bildet må hete .gif (legg til .gif som PHP i configfila til webserveren)

Lenke til kommentar
Gjest Slettet+6132
Takktakk. Men jeg er så ustø i PHP nå så har du mulighet for å kjapt sette sammen scriptet? Og er det ikke mulig å kunne hente det rett fra ei mappe? Og ikke bilde for bilde?

du kan bruke readdri() da. Men jeg har ikke tid å sette sammen scriptet. Det ligger en artikken på programmer.no fra desember 2004 som omhandler bilderedigering i PHP ;)

Lenke til kommentar
Er det siden din lokaltok?

Hvorfor i alle dager bruker du rand og ikke mt_rand?

Og et kanskje større spørsmål, hvorfor kombinere round, rand og count bare for å gjøre det samme som array_rand() gjør?

Jess.

 

Lenge siden jeg skrev den guiden, har rykket et par hakk opp på kunnskapsstigen siden da! ;)

 

Skal rettes opp snarest. Takk for tilbakemeldingen! :)

 

Edit @ ex0n:

Noen som vet hvordan man kan lage et roterende gif-bildefil ut av PHP og uten hjelp av .htaccess? Må lage SELVESTE fila! Vet det finnes på hjemmesiden til en dude her på forumet. Tror den var nynorsk eller no.
Har sett scripts som lager roterende gif-bilder men bruker ei .htaccess-fil!

Er litt på bærtur her. Enkelt sagt: Hvordan lage en roterende avatar til HW-forumet uten bruk av .htaccess-fil? Som roterer bilder fra en angitt mappe!

:roll:

Endret av Lokaltog
Lenke til kommentar
Gjest Slettet+6132

<?php

// Headers
header("Content-Type: image/gif");
header("Cache-Control: no-cache");

// Image Directory
$imagedir = "c:\appserv\www\avatar\images";

// Read directory
$filearr = array();
if ($handle = opendir($imagedir)) {
 while (false !== ($file = readdir($handle))) {
   $filearr[] = $file;
 }
 closedir($handle);
}

// we want to exclude "." and ".."
$images = array();
foreach ($filearr as $filelist) {
 if ($filelist !== "." and $filelist !== "..") {
   $images[] = $filelist;
 }
}

// Count total images
$total = count($images);

// The magic
$output = mt_rand(0, $total);

// Where is the image?
$image = $images[$output];

// Include it!
include($imagedir ."/". $image);
?>

 

Ble litt rotete, men funker. (Hvis du har firefox så får du bare opp noe tekst om bildet ikke er gyldig jpg)

 

EDIT: For å bruke bildet på et forum, kall fila image.jpg og legg dette i .htaccess:

AddType application/x-httpd-php .gif

 

EDIT: Du skulle ha .gif, så jeg fiksa :p

Endret av Slettet+6132
Lenke til kommentar

ex0n:

Det var mye unødvendig kode.

 

F.eks.:

// Read directory
$filearr = array();
if ($handle = opendir($imagedir)) {
while (false !== ($file = readdir($handle))) {
  $filearr[] = $file;
}
closedir($handle);
}

// we want to exclude "." and ".."
$images = array();
foreach ($filearr as $filelist) {
if ($filelist !== "." and $filelist !== "..") {
  $images[] = $filelist;
}
}

 

Bude se slik ut:

// Read directory
$images = array();
if ($handle = opendir($imagedir)) {
while (false !== ($file = readdir($handle))) {
  if ($filelist !== "." and $filelist !== "..") {
     $images[] = $file;
  }
}
closedir($handle);
}

 

 

Dette er unødvendig, bruk array_rand():

// Count total images

$total = count($images);

 

// The magic

$output = mt_rand(0, $total);

 

Dette er det ikke noe poeng å gjøre, bare definere en variabel for å kun bruke den en gang. Les på zend.com, der finner du en artikkel som heter 20 tips alle php programmerere brude kunne:

// Where is the image?

$image = $images[$output];

 

Sett array_rand rett inn her:

// Include it!

include($imagedir ."/". $image);

 

Så er plutselig koden din halvert.

Videre kan du heller lage scriptet helt dynamisk ved å la det godtta både jpg og gif. Sjekk filtypen på det tilfeldige bildet før du legger til:

// Headers

header("Content-Type: image/gif");

header("Cache-Control: no-cache");

 

Lykke til :thumbup:

 

:thumbup::thumbup::thumbup:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...