Hallo,

Ik zal mezelf even voorstellen.
Ik ben Pepijn.
Ik ben 13 jaar, en `leer` PHP via forum's en etc.
Ik ben nu voor mijn eigen website bezig met een templatesysteem.

Maar oke,
Mijn vraag is dus:
Is het mogelijk om met str_replace en een template, alle `mysql query's` te zoeken.
Bijvoorbeeld, ik heb dit in mijn template staan <mysqli["SELECT geld FROM gebruikers WHERE gebruiker = 'Naam'"]>
En wil dus dat hij dat uitvoert, met bijv:
str_replace('<mysqli["*"]', $mysqlicon->selectquery(*), $this->template);
Oftewel met `wildcards`

Het is misschien slecht uitgelegd en een slecht voorbeeld maar ik hoop dat jullie het snappen.

Pepijn.
Ik denk dat wat je wilt handiger kan. Maar dit is een interpretatie van je vraag, misschien denk ik compleet de verkeerde kant op.

Als je een template include dan gebeurt dan met behoud van de scope van de applicatie. Met andere woorden, variabelen die voor de call naar include bestaan, bestaan vanaf dat moment ook in het geincludeerde bestand. Je kan dus in dat bestand variabelen in php aanroepen.

Voorbeeldje:
<?php
//index.php

$var = 'tekst in index.php';
include( 'inc.php' );
?>

<?php
//inc.php
echo 'dit is een '.$var;
?>
als je nu index.php opent in je browser krijg je de tekst 'dit is een tekst in index.php'.

Nu, wat jij wilt zou je handiger kunnen doen door gebruik te maken van bovenstaande. In je include bestanden geef je niet zo'n placeholder, maar gewoon direct een aanroep naar een php variabele of functie.

include bestand inc.html:

<html>
<body><?php echo $db->insert_query( "SELECT geld FROM gebruikers WHERE gebruiker = 'Naam'" ) ?></body>
</html>


Dan in je index.php heb je dit:
<?php
class Database{
public function insert_query( $qr ){
//execute de meegegeven query en return een string met de resultaten ervan
}
}

//object $db aanmaken van bovenstaande class
$db = new Database();

//include het bestand wat nu in dezelfde scopt zit als dit
//je kan dus $db aanroepen
include( 'inc.html' );
?>

Roep je nu index.php aan, dan zal die inc.html includen en daar waar $db wordt aangeroepen zal de betreffende functie worden uitgevoerd.
Dat kan natuurlijk ook, bedankt voor het antwoord.
Sinds ik OOP gebruik ben ik een beetje de weg kwijt :P
Dit is wel wat ik nodig had.

Pepijn.

Reageren