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

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

Laster...
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...