Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP:n sijoittaminen DOMilla HTML-elementin sisään

Triskal [05.05.2009 14:13:50]

#

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

Vastaus

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

Tietoa sivustosta