fastix®: HTML Code durch einen kleinen Code ersetzen?

Beitrag lesen

Moin!

So, das man z.B. statt

<p align="center">Willkommen auf der Seite Test.</p>

nur

[Willkommen]

etc. schreiben muss?

Derlei ist eigentlich gang und gebe. Stichwort Templates.

Im einfachsten Fall ist ein Template eine HTML-Datei mit Platzhaltern, die können auch aussehen wie bei Dir: (./templates/template.html)

  
<html>  
<head>  
[HtmlTitle]  
</head>  
<body>  
[Title]  
[Inhalt]  
[Menue]  
</body>  
</html>

Diese kann z.B. mit PHP eingelesen werden, danach werden die Platzhalter ersetzt, dabei lassen sich auch eigene Funktionen verwenden:

<?php  
  
/* Daten: */  
$arDocument['HtmlTitle']='Tolle Seite';  
$arDocument['Title'] = toTag('h1, '', 'Tolle Seite';  
$arDocument['Inhalt']= toTag('p', 'style="text-align:center"', 'Willkommen auf der tollen Seite!');  
$arDocument['Menue']=  toTag('a', 'href="/"', 'Startseite');  
  
/* Einlesen des Templates: */  
$strOutout=file_get_contents('./templates/template.html');  
  
/* Ersetzen der Platzhalter und Ausgabe: */  
print replacePlaceholders($strOutout, $arDocument);  
  
/* The End: */  
exit;  
  
/*  
     Eigene Funktionen:  
*/  
  
function replacePlaceholders($str, $ar) {  
     /*  
     # Funktion: replacePlaceholders  
     # $str: Erwartet als String HTML-Template mit Patzhaltern in der Form [Document:BEZEICHNER]  
     # $ar:  Erwartet ein Hash mit dem BEZEICHNER als Key einem String als Wert  
     */  
  
     $arKeys=keys($ar);  
     $arSearch=array();  
     $arReplace=array();  
     foreach ($arKeys as $key) {  
         $arSearch[]  = '['.$key.']';  
         $arReplace[] = $arDocument[$key];  
     }  
     return str_replace($arSearch, $arReplace, $str);  
}  
  
  
function toTag($tag, $extra, $str) {  
     /*  
     # Funktion: toTag  
     # $tag:   Erwartet: Name des HTML-Tags: h1, a, ...  
     # $extra: Erwartet: leer oder String wie z.B. 'class="Klasse"'  oder 'style="display:block"'  
     # $str:   Erwartet: als String den Text, der vom Tag umschlossen werden soll  
     */  
     return '<'.$tag.' '.$extra.'>'.$str.'<'.$tag.'>';  
}  
?>

Wenn Du jetzt noch eine Lösung findest woher die Daten für $arDocument kommen (Datenbank, Files) und wie diese auf den Server kommen, dann kannst Du ein kleines CMS "stricken". Nur erfordert das einiges Lernen.

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix