Vraag hoe ik een script 2x kan laten doorlopen.
Ik heb voor de grap dit systeem bedahct:
index.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
class testcls
{
var $html = NULL;
var $files = NULL;
public function replacements()
{
$this->html = file_get_contents('test.php');
$this->html = str_replace('<!-- IF a == b -->','<?php if(a == b){ ?>',$this->html);
$this->html = str_replace('<!-- ELSE -->','<?php }else{ ?>',$this->html);
$this->html = str_replace('<!-- ENDIF -->','<?php } ?>',$this->html);
echo $this->html;
}
}
$test = new testcls;
$test->replacements();
?>
class testcls
{
var $html = NULL;
var $files = NULL;
public function replacements()
{
$this->html = file_get_contents('test.php');
$this->html = str_replace('<!-- IF a == b -->','<?php if(a == b){ ?>',$this->html);
$this->html = str_replace('<!-- ELSE -->','<?php }else{ ?>',$this->html);
$this->html = str_replace('<!-- ENDIF -->','<?php } ?>',$this->html);
echo $this->html;
}
}
$test = new testcls;
$test->replacements();
?>
test.php:
<!-- IF a == b --> a is gelijk aan b <!-- ELSE --> a is niet gelijk aan b <!-- ENDIF -->
Zoals je misschien merkt werkt dit niet.
De statements in test.php worden wel vervangen maar om die weer te laten werken zou het bestand test.php weer opnieuw gelezen moeten worden.
Ik hoop dat iemand weet hoe dat moet.
Groeten,
Daniël
Echter betwijfel ik wel of dit de oplossing voor jou probleem is.
Gewijzigd op 29/12/2010 07:40:40 door Mike Smit
Overigens zitten we al in php5 dus var is min of meer uit de mode. gebruik dan gewoon public / protected / private voor zoals je dat wel doet met je methode. Verder 'mag' je methodes niet iets laten echooen je moet ze juist iets laten retourneren.
Over definieer $files, maar die wordt nergens gebruikt? En als laatste mis ik PHPdoc
Probeer je de php file die je aan het uitvoeren bent te overschrijven of zo?
Ook $files heb ik niet gebruikt. (heb ik wel maar heb ik later verwijderd en heb var $files = NULL; laten staan.
Maar buiten dat, mijn reden is dat ik dit wil gebruiken in combinatie met html template. Dus ik wil mijn php en html gescheiden hebben en niet alles door elkaar.