Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: sivun sisällön muokkaus

Pallo [26.05.2008 21:56:23]

#

Sivuni johon includetaan toinen testi.php filu näyttää tältä:

** alkuperäinen sivu **
<html>
<head>
<title>Testisivu</title>
</head>
<body>
<?php include("testi.php"); ?>
</body>
</html>

Kun testi.php liitetään sivuun, testi.php tiedostossa olevan koodin pitäisi
lisätä tuon alkuperäisen sivun esim. <head>..</head> tagien väliin esimerkiksi meta tagit. Eli ts. sisällytettävä testi.php "muokkaa" alkuperäisen tiedoston koodia.

Kuinka tälläinen olisi mahdollista toteuttaa?

Lebe80 [26.05.2008 22:00:49]

#

Käytä puskuroitua tulostusta.

Kutakuinkin näin ulkomuistista:

<?php
   $otsikko = "Oletusotsikko sivustolle";
   $customHeaders = "";
   ob_start();
   include("testi.php"); // haluttu sisältötiedosto
   $output = ob_get_clean();  // asetetaan tulostus muuttujaan ja tyhjennetään tuloste
?>
<html>
   <head>
      <title><?php
          echo $otsikko; // asetettu testi.php -tiedostossa uudelleen
      ?></title>
      <?php
         echo $customHeaders; // asetettu testi.php -tiedostossa uudelleen, sisältää esim. tyylitiedostot, javascriptit yms.
      ?>
   </head>
   <body>
      <?php echo $output; ?>
   </body>
</html>

Pallo [26.05.2008 22:23:37]

#

Mutta entäs jos ei tiedetä yhtään miltä alkuperäinen tiedosto näyttää?
Vaikka ei tiedetä, pitäisi jotenkin saada muutettua alkuperäisen tiedoston
esim. <head>..</head> tagien sisältöä.
Onko tälläinen edes mahdollista?

Merri [27.05.2008 06:49:29]

#

Ääh, ei tehdä asioita vaikeiksi. Tee templaattitiedosto, eli pyöräytä ajatuksesi ympäri:

templaatti.php:

<?php

function luo_header() {
    global $title, $meta;
?><!DOCTYPE JNE JNE JNE>
<html>
    <head>
        <title><?php echo htmlspecialchars($title); ?></title>
        <?php echo $meta; ?>
    </head>
    <body>
<?php
}

function luo_footer() {
?>
    </body>
</html>
<?php
}

?>


testi.php:

<?php

require_once('templaatti.php');

$title = 'Testisivu';
$meta = '';

luo_header();

?>

KIRJOITA SISÄLTÖ TÄHÄN.

<?php

luo_footer();

?>

Vastaus

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

Tietoa sivustosta