Blogin arkisto

PHP:n alku- ja lopputagit

Share |

Tiistai 9.9.2014 - Kari Vahtolammi


karivahtolammi.jpgYllättävän usein aloittevat ja myöskin kokeneemmat php-koodarit tuskailevat saman ongelman kanssa eli palvelin on lähettänyt jo http-headerit ennen sivun valmistumista. Eli yritettäessä lisätä omia cookieseja tms. saadaan ilmoitus siitä, ettei se onnistu. Ja ongelma on aika yksinkertainen.

Aika moni koodausstandardi antaa ohjeen siitä, että jätetään lopussa oleva ?> – tagi pois kooditiedostoista. Asia kuitenkin opetetaan pääsääntöisesti toistepäin eli sekä alkava että lopettava tagi on pakollinen.

“For files that contain only PHP code, the closing tag (“?>”) is never permitted. It is not required by PHP, and omitting it´ prevents the accidental injection of trailing white space into the response”, Zend framework

Eli kirjoitettaessa pelkkiä kooditiedostoja pitää jättää pois lopusta nuo tagit. Eli tiedoston alussa on normaali

Osan koodarien mielestä ongelma voidaan myös kiertää toisella tavalla eli käyttämällä ob_start- komentoa eli buffeeroinnilla. Itse en pidä siitä, että kierretään yksnikertainen ongelma monimutkaisella ratkaisulla. Varsinkin kun ongelma voidaan ratkaista vain ohjeistamalla. Eli vain jättämällä koodifileistä lopusta pois tuo ongelmia tuottava tagi.

Suosittelen opettelemaan jakamaan koodin omiin tiedostoihin ja myös opettelmaan jättämään tuon loppupään tagin pois. Saattaa ratkaista monia headereiden lähettämisestä syntyviä ongelmia yksinkertaisesti.

Kuhan pohdin, Kari…

P.S. Toin tämänkin jo hiljalleen manan majoille siirtyvästä blogista. Asia on niin yksinkertainen, mutta aiheuttaa usein vaivaa aloitteville koodareille. Eli siksi päätin julkaista uudelleen.

Kari Vahtolammi
Kirjoittaja on hiukan yli viisikymppinen yrittämisestä, opiskelusta (TTY) ja psykologiasta kiinnostunut it-alan ammattilainen.
www.karivahtolammi.com

Avainsanat: Kari Vahtolammi, php, tagit, koodaus


Kommentoi kirjoitusta


Nimi:*

Kotisivun osoite:

Sähköpostiosoite:

Lähetä tulevat kommentit sähköpostiini