Tässä onkin mielenkiintoinen pähkinä.
Järkeilin näin:
Meillä on html-tiedosto, jossa on tietty tagi:
<div id="plaa">Tekstiä</div>
Meillä on PHP-tiedosto, joka ottaa HTML-tiedoston käsittelyynsä näin:
$doc=new DOMDocument(); $doc->loadHTMLFile('htmlfilu.html'); $divi=$doc->getElementById('plaa'); //löytyi oikea divi // <-- Tässä välissä pitäisi "plaa:n" sisälle sijoittaa PHP-filu, mutta --> // <-- siten, että filun sisällä tuleva PHP myös tulee suoritetuksi! --> echo $doc->saveHTML();
Ensin kokeilin näin:
$divi->nodeValue=file_get_contents("phpfilu.php");
Mutta ei toimi, koska kaikki PHP:kin tulkitaan merkkijonoina. Includetus ja requiretus eivät pelaa myöskään tässä tapauksessa; ne lykkäävät haetun filun sisällön sivun alkuun, diviin paluuarvon (joka on 1 jos ja kun filu kerta löytyy).
Touhun logiikka yrittää olla kovasti siinä, että sivustossa, jossa layout saattaa vaihdella sivuittain, layout olisi passiivinen osapuoli, jonne ei tarvitsisi sotkea PHP:ta sekaan. Siellä olisi valmiiksi merkatut paikat sisällölle ja niihin sijoitettaisiin sisällöt lennosta. Kyselkää, jos tarviitta lisäselvitystä.
EDIT:
Heh, meikäläisen kanssa käy yleensä niin, että selostan tänne mikä ei onnistu ja sitten, hupsista, tiedänkin itse mitä pitää etsiä ja mistä. Eli ratkaisu löytyi, toivottavasti tästä on apua jollekin:
ob_start(); include("mitä sitten includetetaankin"); $includetuksen_tulos=ob_get_clean(); $divi->nodeValue=$includetuksen_tulos;
Pelaa!
EDIT2:
Kiitos, Kimmo Laine! (Emmää tiedä onko täällä semmoista, mutta maailma on pieni: ainahan se on mahdollista!)
http://bytes.com/groups/php/159828-read-parsed-php-file-into-variable#post613992
Aihe on jo aika vanha, joten et voi enää vastata siihen.