Die meeste van die inhoud van die internetbronne word vandag dinamies gegenereer deur skrifte aan die bediener kant. Maar op hierdie manier word meestal teksinligting vertoon (bladsy-uitleg, stylblaaie, sitemap). Beelde, musiek, video's, argiewe is gewoonlik op die bediener in die vorm van statiese lêers. Soms word dit egter nodig om soortgelyke data met behulp van 'n script te genereer. As u dus 'n statiese beeld moet vertoon, kan u dit volledig in die script plaas.
Nodig
die vermoë om bedienerskripte te skep of te wysig
Instruksies
Stap 1
Voeg hierdie prente in die skrif as teks, wat deel uitmaak van die programkode. Gebruik die gemaklikste datastrukture en sintaktiese konstrukte. Die keuse word gewoonlik bepaal deur die vermoëns van die gebruikte programmeertaal. In baie gevalle is dit dus handig om 'n prentjie in 'n teks in te voeg as 'n gewone tekenreeks, waarvan die inhoud beelddata gekodeer is met 'n algoritme soos Base64. In PHP kan dit soos volg lyk (GIF-beeld van 2x2 pixels): $ str = 'R0lGODlhAgACAIAAAAAAAP /// yH5BAAA'. 'AAAALAAAAAACAAIAAAIDDBAFADs ='; Reeks letterkundes word ook algemeen gebruik.
Stap 2
Berei die beeld voor vir uitvoer. Dekodeer die oorspronklike inligting indien nodig. U moet 'n buffer ontvang wat die binêre data van die prent bevat. Byvoorbeeld, in PHP kan die dekodering van die string wat in die eerste stap gegee is, soos volg lyk: $ text = base64_decode ($ str);
Stap 3
Voeg 'n veld by met die gegewens oor die lengte van die antwoordliggaam (die grootte van die beeld wat vertoon word) in die kop van die bediener se HTTP-antwoord. Bepaal die omvang met behulp van funksies of metodes wat die lengte van skikkings, snare, ens. Weergee. Byvoorbeeld: kop ('Content-length:'.strlen ($ text));
Stap 4
Voeg 'n veld by die HTTP-reaksie-opskrif van die bediener wat die mime-tipe van die oordra inhoud aandui. Byvoorbeeld: kop ('Content-type: image / gif'); Die inhoudstipe moet al bekend wees (bepaal op grond van die formaat van die oorspronklike prent).
Stap 5
As u die beeld moet stoor in plaas daarvan om deur die blaaier te vertoon, moet u die toepaslike veld by die antwoordkop voeg: header ("Content-Disposition: attachment; filename = my_image.gif");
Stap 6
As u die beeld nie deur die blaaier wil cach nie, voer die Pragma- en cache-Control-velde in met die toepaslike waardes in die HTTP-antwoord: header ("Pragma: no-cache"); header ("Cache-Control: no -cache, must-revalidate, no-store "); header (" Cache-Control: pre-check = 0, post-check = 0 ", false); Dit is ook die moeite werd om die datums van die laaste wysiging en die verstryking te gee datum van die hulpbron. In hierdie geval moet die tweede daarvan later wees: koptekst ("Verval: Ma, 4 Januarie 1993 00:00:01 GMT"); koptekst ("Laaste gewysigde:".gmdate ("D, d MYH: i: s ")." GMT ");
Stap 7
Vorm die liggaam van die HTTP-reaksie van die bediener, wat die beelddata is. Gebruik funksies of metodes van voorwerpe wat die uitvoer van binêre data lewer sonder om ekstra te verwerk. Byvoorbeeld: printf ('% s', $ text);