Avatar billede ignor Nybegynder
22. april 2002 - 17:50 Der er 4 kommentarer og
1 løsning

Simpelt PHP script?

hejsa jeg er på udkig efter en god løsning på mit problem, jeg skal bruge et lille script som har embedded én URL til placering af et banner billede ..fx. http://www.bla.dk/banner.gif

Så jeg kan linke til
<img src="http://www.bla2.dk/banner.php">  istedet for til billedet direkte. Det her er præcis hvad jeg har brug for, ikke mere indviklet.

problemet er at det skal være meget mildt ved serveren (unix) for scriptet vil blive kaldt mange gange pr sekund.

Dette er mit eget forslag men jeg ved ikke meget om php så det er nok næppe den bedste løsning:

<html>
<head>
<title>bannertest</title>
</head>

<body>
<img src="http://www.bla.dk/banner.php">
</body>

</html>


*************************'
indhold af banner.php

<? 
Header( "Pragma: no-cache" ); 
Header( "Expires: Monday 01-Jan-80 12:00:00 GMT" ); 
Header( "Content-type:  image/gif"); 
readfile ("./mypic.gif");
?>

jeg ved ikke med det der no-cache om det er nødvendigt

Det er ekstremt vigtigt at det er en perfekt løsning da det som sagt vil blive requested utrolit mange gange!
Avatar billede eeyore Nybegynder
22. april 2002 - 18:16 #1
Jeg vil tro, det vil være mere effektivt at sige:

<?
header('Location: /mypic.gif');
?>
altså bare redirecte til billedet - så undgår man overheaden med at skulle lade php læse filen.
Avatar billede Slettet bruger
22. april 2002 - 18:54 #2
ignor: Det er en fin løsning. Og nej, du behøver ikke din Pragma og Expires headers. Slut iøvrigt evt. banner.php med en exit();
Avatar billede ignor Nybegynder
22. april 2002 - 22:57 #3
hvad er forskellen på at bruge "readfile" istedet for bare header? jeg fik fortalt af en det var bedre, men jeg ved det ikke??
Avatar billede eeyore Nybegynder
22. april 2002 - 23:57 #4
Tja... mener du forskellen på din løsning (som - enig med mercur8 - er udmærket) og mit forslag?

Hmm... jeg har ikke kunnet læse i dokumentationen, hvor meget readfile() gemmer i bufferen, om den gemmer en buffer af hele filen eller kun dele af filen, som den så flusher til klienten. I hvert fald vil en del af (billed)filen være buffered, hvilket vil sige, at den under læsningen optager en lille del af RAM'en. Og det gør den vel at mærke både for PHP og for Apache.

Hvis man sender en location-header (aka redirection-header), får klienten blot at vide, at den skal søge filen et andet sted - og læser den herfra. Her vil php slet ikke blive indblandet i læsningen (og ikke bruge RAM på at læse filen), men apache vil servere den direkte. Så derfor vil der muligvis være en lille smule RAM-forbrug at spare... Men det må nok komme an på en stress test i et produktionslignende miljø, for at afgøre hvad der fungerer bedst....
Avatar billede ignor Nybegynder
23. april 2002 - 10:22 #5
tak for dit svar :-)
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