str_replace() ?! Tags ersetzen

3Cyb3r

Erfahrenes Mitglied
Hallo,
ich habe gerade seit langem mal wieder mit PHP etwas gemacht. Ich dachte mir ich versuch mal mich ein wenig in das Thema CMS einzuarbeiten.
Nun habe ihc mir sozusagen eigene Tags definiert und schreibe deise z.B. in meine HTML Templates. Danach ersezte ich diese. Soweit funktioniert auch alles.

Nun hatte ich versucht einfach nur eine Session Variable auszugeben, sowie in einer Template .htm Datei embedd PHP zu verwenden. Dies hat beides nicht funktioniert.
Wo liegt mein Denkfehler oder habe ich Syntax übersehen?

PHP:
// in der index.php z.B.
$template = str_replace($base['tag_start'].'userbar'.$base['tag_end'],$base['userbar'],$template);
// in der dase.inc.php z.B.
$base['userbar'] = $_SESSION['user_nickname']; // FUNKTIONIERT nicht

// So geht es :
$template = str_replace($base['tag_start'].'userbar'.$base['tag_end'],$_SESSION['user_nickname'];,$template);

PHP:
// und für embedd z.B. in der index.php
$template = str_replace($base['tag_start'].'header'.$base['tag_end'],$base['header'],$template);
// in der base.inc.php
$base['header'] = get_file_as_string('templates/header.htm');

      /* Datei als String einlesen */
  function get_file_as_string($filename)
  {
    $tmprslt = file($filename);
    $tmprslt = implode('',$tmprslt);
    return $tmprslt;
  }

// ja in der code in der htm Datei ist einwandfrei funktioneirt auch allein^^


Danke im Vorraus
MFG


// EDIT:
vielleicht einmal die main.htm noch wer es sich nicht vorstellen kann -.-

HTML:
<html>
  <head>
    <title><@title@></title>
    <style type="text/css">
      <!--
        a				{ color:#336699; }
        body			{ margin:0px;
        				  background-color:#CCCCCC;}
        table#main		{ width:100%;
        			      border:none; }
        td#shortnav		{ background-color:#CCCCFF;
        				  border-bottom:solid 1px #000000;
        				  font-size:13px;
        				  padding:5px; }
        td#navi			{ width:25%;
        				  background-color:#EEEEEE;
        				  border-right:dashed 1px #000000;
        				  border-bottom:solid 1px #000000;
        				  padding:5px;
        				  vertical-align:top; }
        td#content		{ width:75%;
        				  background-color:#FFFFFF;
        				  border-bottom:solid 1px #000000;
        				  padding:5px;
        				  vertical-align:top; }
        span.uri		{ color:#008000; }
        p#disclaimer	{ font-size:10px;
        				  color:#000000;
        				  text-align:center; }
        h4				{ color:#003366; }
        p				{ text-align:justify; }
        .klasse_unsichtbar { display:none; } 
      //-->
    </style>
  </head>
  <body>
  <table id="main" border="0" cellpadding="0" cellspacing="0">
      <tr align="center">
        <td id="header" colspan="2" valign="top"><@header@></td>
      </tr>
      <tr>
        <td id="shortnav" colspan="2"><@userbar@></td>
      </tr>
      <tr>
        <td id="navi"><@navigation@></td>
        <td id="content"><@content@></td>
      </tr>
      <tr>
        <td id="shortnav" colspan="2"><@shortnav@></td>
      </tr>
      <tr height="15px"></tr>
      <tr>
        <td id="footer" colspan="2"><@footer@></td>
      </tr>
    </table>
    
  </body>
</html>
 
Zuletzt bearbeitet:
PHP:
  function get_file_as_string($filename)
  {
    $tmprslt = file($filename);
    $tmprslt = implode('',$tmprslt);
    return $tmprslt;
  }

Wenn du mit dieser Funktion die Datei einliest, kann es nicht funktionieren, da sie keinen Code in der Datei ausführt.
Dafür müsstest du [phpf]include[/phpf] oder [phpf]require[/phpf] verwenden... Oder den worst-case wählen und [phpf]eval[/phpf] benutzen.
 
Zurück