Der Martin: Mit PHP PHP-Start- und Endkennzeichen in Datei schreiben

Beitrag lesen

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( "&lt;?php" );  

> $this->phpTagEnd   = html_entity_decode( "?&gt;"    );

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 = "&#60;?php";  

> $this->phpTagEnd   = "?&#62;";  
> 

ergibt:

<div id="men">
                          &#60;?php
                            include( "menue_include.inc" );
                          ?&#62;
                        </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:(