Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Php-koodi head-lohkon sisällä

volume [15.12.2018 06:52:30]

#

Liitän alla olevan mukaisesti otsikko.php -tiedoston Xhtml-sivun yläosaan. Otsikko.php sisältää head-lohkossa tarvittavat yleiset tiedot ja tulevaisuudessa vielä Google Analytics -seurantakoodin.

<head>
     <?php include("otsikkotiedot/otsikko.php"); ?>
</head>

Validaattorista menee läpi puhtain paperein, mutta lähdekoodissa (selaimella katsottaessa) on yksi kohta ihmetykseni aiheena. Alla include-filen kopioima head-lohko:

<head>
  <meta name="keywords" content="xxxxxx,yyyyyy,zzzzzz" />
  <meta name="description" content="dndovn dkjvndodw dnsdovn" />
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <title>Jhsqodwowow</title>
  <link href='http://fonts.googleapis.com/css?family=Oswald:400,300' rel='stylesheet' type='text/css' />
  <link href='http://fonts.googleapis.com/css?family=Abel' rel='stylesheet' type='text/css' />
  <link href="new_default.css" rel="stylesheet" type="text/css" media="all" />
  <!--[if IE 6]>
  <link href="default_ie6.css" rel="stylesheet" type="text/css" />
  <![endif]--></head>
<body>

Miksi viimeisellä ja rivillä oleva <body>-tagi ja sen yläpuolella oleva head-lohkon päättävä </head>-tagi on korostettu punaisella värillä? Aivan niinkuin koodissa olisi kuitenkin jotakin virhettä!

Metabolix [15.12.2018 11:54:05]

#

Tiedostossa otsikko.php on alussa BOM (byte-order mark). Noin keskellä HTML-koodia se tulkitaan tekstiksi, jolloin head-osio loppuu ja body-osio alkaa automaattisesti. Näin ollen kaikki, mitä yritit laittaa head-elementin sisään, päätyykin automaattisesti aloitetun body-elementin sisään, ja sulkeva head-tagi ja avaava body-tagi ovat virheelliset. Validaattori ilmoittaa myös meta-elementtien väärästä sijainnista ja title-elementin puuttumisesta, eli en tiedä, miten saat tuon läpi ”puhtain paperein”.

Voit todeta ongelman, kun kopioit tuon lähettämäsi koodin tekstilaatikkoon ja liikut nuolinäppäimillä ensimmäisen ensimmäisen meta-tagin vasemmalla puolella: heti <-merkin vasemmalla puolella on kohta, jossa nuolinäppäimen painaminen ei näytä siirtyvän yhtään. Tässä kohti nuolinäppäin siirtyy näkymättömän BOMin yli.

<head>
  tuossa välissä on näkymätön BOM:<meta

Tallenna aina kaikki tiedostot ilman UTF-8:n BOMia. Tekstieditoreissa on yleensä erikseen valittavissa tallennusmuoto (tai enkoodaus) "UTF-8 (without BOM)" tai vastaava.

volume [15.12.2018 13:58:06]

#

Niimpä. Näiden tallennusmuotojen kanssa saa aina olla tarkkana.

The Alchemist [25.12.2018 09:20:09]

#

Tai ehkäpä et käytä Notepadia enää jatkossa... Ainoastaan nyyppäpalstoilla törmää näihin merkistöihin liittyviin ongelmiin, koska vain nyypät käyttävät Notepadia...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta