Ersetzen von PHP Code im Template klappt nciht

  • Themenstarter Themenstarter ByeBye 8492
  • Beginndatum Beginndatum
B

ByeBye 8492

Moinsen,

habe ein Problem mit meinem Template Parser:

Also das ist sind die Betreffenden Code Zeilen, die eigentlich die PHP Funktionen und Variablen umwandeln sollten ....

PHP:
	preg_match_all("<\?php(.*)\?>", $to_parse, $parse2);  // weist der Variablen parse_vars_n die Werte zu 
	for($z=0; $z < count($parse2[1]); $z++) 
		{
				
				$replace 			= 	eval($parse2[1][$z]);
				$to_parse			= 	ereg_replace($parse2[1][$z], $replace, $to_parse);
		}

$to_parse ist dabei die Template Datei welche wie folgend aufgebaut ist:

PHP:
<?php smalltable(); ?>
<table><tr><td>Statistiken:</td></tr>
  <tr><td>Gesamt Beitr&auml;ge:</td>
    <td>{posts}</td>
  </tr>
  <tr>
    <td>Dabei seit:</td>
    <td>{joined}</td>
  </tr></table>
<?php closetable(); smalltable(); ?>

er generiert aber leider nicht alle Tabellen, sondern zerhaut mit der Funktion das gesamte Design, obwohl sie eigentlich helfen sollte es zu "verbessern :(.

Warum könnte es nicht klappen, das er die Keywords nicht ordentlich ersetzt?
 
Achso, hier ist nochma nen Stück Code daraus:

PHP:
<table><tr><td>Statistiken:</td></tr>
  <tr><td>Gesamt Beitr&auml;ge:</td>
    <td>0</td>
  </tr>

  <tr>
    <td>Dabei seit:</td>
    <td></td>
  </tr></table>
<?php closetable();?>
<table>
  <tr>
    <td>Kommunikation:</td>
  </tr>

  <tr>
    <td>E-mail:</td>
    <td>admin@optima-design.de</td>
  </tr>
  <tr>
    <td>ICQ:</td>
    <td>13339863</td>

  </tr>
  <tr>
    <td>AIM</td>
    <td>USmuffin</td>
  </tr>
  <tr>
    <td>MSN:</td>

    <td>muffinmeal@hotmail.com</td>
  </tr></table>
<?php?>

Man sieht darin das der Parser seiner Arbeit nicht getan hat ( an den <?php?> ) und auch shonst fehlen dort sämliche Tabellen öffnen und Schliessbefehle.

Ich habe schonmal ausprobiert und mit einem einizigen PHP Code in der Datei klappt es auch ....
 
Habe jetzt nicht großartig drüber nachgedacht, aber nimm mal statt
Code:
preg_match_all("<?php(.*)?>", $to_parse, $parse2);
folgendes;
PHP:
preg_match_all("<?php(.*?)?>", $to_parse, $parse2);

snuu
 
snuu hat gesagt.:
Habe jetzt nicht großartig drüber nachgedacht, aber nimm mal statt
PHP:
preg_match_all("<?php(.*)?>", $to_parse, $parse2);
folgendes;
PHP:
preg_match_all("<?php(.*?)?>", $to_parse, $parse2);

snuu

Dann kommt der Fehler:

Warning: Compilation failed: nothing to repeat at offset 0 in F:\htdocs\optima\includes\template.php on line 59

Und alle PHP Codes stehen noch im Quelltext drinne :(, allerdings halt nicht in der HTML Form wie sie es eigentlich sollten.
 
Zurück