
HTML PHP:hen: echo, heredoc, nowdoc ja PHP:stä poistuminen
Liitä valmis merkkaus, niin saat viisi tapaa sijoittaa se PHP-tiedostoon, kukin oikealla suojauksella. Kaikki tapahtuu selaimessasi: merkkausta ei lähetetä minnekään eikä tallenneta mihinkään.
.html — tiedosto luetaan paikallisesti.
Lähinnä sitä, mitä codebeautify tuottaa, mutta suojauksella: ilman sitä mikä tahansa heittomerkki merkkauksessa rikkoo PHP-merkkijonon.
Liitä HTML:ää yllä — PHP-koodi ilmestyy tähän.
Liitä HTML:ää yllä — PHP-koodi ilmestyy tähän.
Liitä HTML:ää yllä — PHP-koodi ilmestyy tähän.
Liitä HTML:ää yllä — PHP-koodi ilmestyy tähän.
Liitä HTML:ää yllä — PHP-koodi ilmestyy tähän.
Merkkaus ei poistu selaimestasi — muunnos tapahtuu paikallisesti, mitään ei lähetetä palvelimelle.
Viisi tapaa ja milloin mikäkin sopii
echo riveittäin — rivi rivin jälkeen, kukin omana kutsunaan. Tutuin ulkoasu, kätevä silloin, kun rivien väliin pitää laittaa ehto tai silmukka. nowdoc — lohko, jossa PHP ei tulkitse mitään: ei ohjaussarjoja eikä muuttujia. Merkkaus menee koodiin tavu tavulta eikä tarvitse suojausta lainkaan. Tämä on turvallisin tapa siirtää vieras HTML. heredoc — sama lohko mutta muuttujineen: sen sisällä oleva $title korvataan. Siksi dollari ja kenoviiva suojataan, lainausmerkkejä taas ei. Merkkijono muuttujassa — merkkaus kerätään $html-muuttujaan yhdistämällä. Tarvitaan, kun se pitää palauttaa funktiosta tai välittää mallimoottorille eikä tulostaa heti. PHP:stä poistuminen — sulje tunniste ja anna merkkaus sellaisenaan. Juuri tätä PHP:n dokumentaatio suosittaa: ei suojausta, ei merkkijonojen liimaamisen kustannusta, ja editorin syntaksin korostus pysyy toimivana. Sulkeva tunniste ?> puuttuu generoidusta koodista tarkoituksella. Mikä tahansa merkki sen jälkeen — jopa vahingossa jäänyt rivinvaihto tiedoston lopussa — päätyy tulosteeseen ja tuottaa klassisen «headers already sent».
Miksi ilman suojausta toimivat muuntimet tuottavat toimimatonta koodia
Yleisin HTML:stä PHP:hen muuntava verkkotyökalu tekee tasan yhden asian: se leikkaa tekstin riveiksi ja liimaa echo '<rivi>';. Merkkien korvausta siellä ei ole lainkaan, ja se näkyy heti ensimmäisessä oikeassa merkkauksen palasessa. Määrite yksinkertaisissa lainausmerkeissä — <a href='/price'> — sulkee PHP-merkkijonon keskellä tekstiä. Sen jälkeen tulee syntaksivirhe. Rivin lopussa oleva kenoviiva syö sulkevan lainausmerkin ja liimaa kaksi riviä yhdeksi. Dollarimerkki kaksinkertaisissa lainausmerkeissä tai heredocissa muuttaa $total-muuttujan tyhjäksi arvoksi. trim() jokaisella rivillä leikkaa hiljaisesti sisennykset pre-, textarea- ja code-elementtien sisältä — sivulla muuttuu se, mitä kävijä näkee. Kaikki rivit liimataan ilman rivinvaihtoja, joten syntyvästä HTML:stä tulee yksi loputon rivi. Täällä jokainen näistä tapauksista on hoidettu, ja heredocin nimiö valitaan niin, ettei se osu yhteenkään merkkauksesi riviin: muuten lohko sulkeutuisi keskeltä.
