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?
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>
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?
Ää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(); ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.