Det mesta av innehållet i webbresurser idag genereras dynamiskt av skripter på serversidan. Men på detta sätt visas mestadels textinformation (sidlayout, stilark, webbplatskarta). Bilder, musik, videor, arkiv finns som regel på servern i form av statiska filer. Ibland blir det dock nödvändigt att generera liknande data med hjälp av ett skript. Så om du behöver visa en statisk bild kan du helt infoga den i skriptet.
Nödvändig
möjligheten att skapa eller redigera servern manus
Instruktioner
Steg 1
Infoga dessa bilder i skriptet som text, som ingår i programkoden. Använd de mest praktiska datastrukturerna och syntaktiska konstruktionerna. Valet bestäms vanligtvis av funktionerna i det programmeringsspråk som används. Så i många fall är det bekvämt att infoga en bild i ett skript som en vanlig teckensträng, vars innehåll är bilddata kodad med en algoritm som Base64. I PHP kan det se ut så här (2x2 pixlar GIF-bild): $ str = 'R0lGODlhAgACAIAAAAAAAP /// yH5BAAA'. 'AAAALAAAAAACAAIAAAIDDBAFADs ='; Matrisbokstäver används också ofta.
Steg 2
Förbered bilden för utmatning. Avkoda originalinformationen om det behövs. Du bör få en buffert som innehåller bildens binära data. I PHP kan till exempel avkodning av strängen i det första steget se ut så här: $ text = base64_decode ($ str);
Steg 3
Lägg till ett fält som innehåller data om svarstypens längd (storleken på den visade bilden) i rubriken till servern HTTP-svar. Bestäm räckvidden med hjälp av funktioner eller metoder som returnerar längden på matriser, strängar etc. Till exempel: rubrik ('Innehållslängd:'.strlen ($ text));
Steg 4
Lägg till ett fält i HTTP-svarshuvudet på servern som anger mime-typen av det överförda innehållet. Till exempel: rubrik ('Innehållstyp: bild / gif'); Innehållstypen måste redan vara känd (bestämd utifrån originalbildens format).
Steg 5
Om du behöver tvinga bilden som ska sparas istället för att visas i webbläsaren, lägg till lämpligt fält i svarsrubriken: rubrik ("Innehållsdisposition: bilaga; filnamn = min_bild.gif");
Steg 6
Om du vill undvika att cachelagra bilden i webbläsaren anger du fälten Pragma och cache-kontroll med lämpliga värden i HTTP-svaret: header ("Pragma: no-cache"); header ("Cache-Control: no -cache, must-revalidate, no-store "); header (" Cache-Control: pre-check = 0, post-check = 0 ", false); Det är också värt att ange datum för den senaste modifieringen och utgången resursdatum. I det här fallet måste den andra av dem vara senare: header ("Expires: Mon, 4 Jan 1993 00:00:01 GMT"); header ("Last-Modified:".gmdate ("D, d MYH: i: s ")." GMT ");
Steg 7
Forma kroppen för serverns HTTP-svar, vilket är bilddata. Använd funktioner eller metoder för objekt som ger utdata från binär data utan ytterligare bearbetning. Till exempel: printf ('% s', $ text);