Hallo Matthias,
ich bastele mir gerade etwas Code, welcher aus XML-Dokumenten Webseiten erstellt. Dabei versuche ich in die zu generierende .php-Datei folgendes zu schreiben:
<div id="men">
<?php
include( "menue_include.inc" );
?>
</div>
das sollte eigentlich eine leichte Übung sein.
> 1)
> ~~~php
$this->phpTagStart = html_entity_decode( "<?php" );
> $this->phpTagEnd = html_entity_decode( "?>" );
ergibt:
<div id="men">
</div>
Den String erst in HTML-Entities zu notieren und dann durch html\_entity\_decode() zu nudeln, ist zwar überflüssig, sollte aber zumindest das gewünschte Ergebnis bringen.
$this->phpTagStart = '<' . '?php';
$this->phpTagEnd = '?' . '>';
... sollte dasselbe bewirken. Vermeide nur, '<?php' und '?>' am Stück zu schreiben, das könnte den Parser irritieren und dein Script vorzeitig beenden. Deshalb die zerstückelte Schreibweise.
> 2)
> ~~~php
$this->phpTagStart = chr( "60" ).'?php';
> $this->phpTagEnd = '?'.chr( "62" );
ergibt:
<div id="men">
</div>
Dasselbe in Grün. Wobei es hanebüchener Unsinn ist, das Argument von chr(), das ja eine Zahl sein soll, als String zu übergeben.
> 3)
> ~~~php
$this->phpTagStart = "<?php";
> $this->phpTagEnd = "?>";
>
ergibt:
<div id="men">
<?php
include( "menue_include.inc" );
?>
</div>
Mir schwant, dass du dir das Ergebnis in der Browserdarstellung ansiehst, und nicht im Quellcode. Dass ein Browser den gesamten Rattenschwanz von <?php bis ?> als unbekanntes Tag ignoriert, ist völlig klar. Daher sind die Varianten 1 und 2 nach meinem Dafürhalten absolut okay, nur deine Beurteilung ist vermutlich falsch. Variante 4 hätte ich vermieden, weil sie syntaktisch nicht ganz eindeutig für den Parser ist.
Ciao,
Martin
--
Er war ein Mann wie ein Baum. Sie nannten ihn Bonsai.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(