Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Einfache Template-Klasse

Mitglied: N0ooo0B

N0ooo0B (Level 1) - Jetzt verbinden

03.08.2009, aktualisiert 01:23 Uhr, 7013 Aufrufe, 1 Kommentar, 2 Danke

Mit dieser einfachen Template-Klasse können Sie PHP von HTML getrennt halten

Hallo Benutzer!

Ich stelle dir diese einfache Template-Klasse gerne zuverfügung!

template.class.php:


01.
<?php 
02.
class template 
03.
04.
 
05.
  /** 
06.
    * Template Inhalt 
07.
08.
    * @access protected 
09.
    * @var string  
10.
   */ 
11.
   protected $tmpl_file
12.
 
13.
  /** 
14.
    * Template variabeln 
15.
16.
    * @access protected 
17.
    * @var array  
18.
   */ 
19.
   protected $tmpl_vars;  
20.
    
21.
     /** 
22.
     * Template - Datei auslesen 
23.
     * @param string $template Template-Name 
24.
     */ 
25.
     public function __construct($template) { 
26.
          if (file_exists($template)) { 
27.
               $this->tmpl_file = file_get_contents($template); 
28.
          }else
29.
               die("Template not exists! dummy: {$template}"); 
30.
31.
32.
 
33.
     /** 
34.
     * Template - Variabeln ersetzen bzw setzen 
35.
     * @param array or string $search  
36.
     * @param string $replace 
37.
     */ 
38.
     public function assign($search, $replace=NULL) { 
39.
          if (is_array($search)) { 
40.
              foreach($search as $key => $value) { 
41.
                $this->tmpl_vars[$key] = $value
42.
43.
          }else
44.
                $this->tmpl_vars[$search] = $replace
45.
46.
47.
      
48.
     /** 
49.
     * Template - ausgeben 
50.
     * @return string 
51.
     */ 
52.
     public function output() { 
53.
           
54.
          $this->tmpl_file = preg_replace("/\{(.*?)\}/ise", "\$this->tmpl_vars['\\1']", $this->tmpl_file); 
55.
              print($this->tmpl_file); 
56.
57.
 
58.
 
59.
60.
?>

index.php:

01.
<?php 
02.
  include("template.class.php"); //Includes Class 
03.
   define("TPL_DIR", "templates/"); 
04.
$tmpl = new template(TPL_DIR."index.tpl"); 
05.
 
06.
$tmpl -> assign("Inhalt", "Dein Text"); 
07.
$tmpl -> assign(array("Name" => "Dein Name", "Bild" => "Dein Bild")); 
08.
 
09.
$tmpl -> output(); //Template print 
10.
?>

index.tpl:

01.
<?xml version="1.0"?> 
02.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
03.
<html> 
04.
  <head> 
05.
    <title>New Document</title> 
06.
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
07.
  </head> 
08.
  <body> 
09.
    {Inhalt} 
10.
<hr /> 
11.
<b>{Name}</b><br /> 
12.
<b>{Bild}</b> 
13.
  </body> 
14.
</html>

Ausgabe:

01.
<?xml version="1.0"?> 
02.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
03.
<html> 
04.
  <head> 
05.
    <title>New Document</title> 
06.
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
07.
  </head> 
08.
  <body> 
09.
    Dein Text 
10.
<hr /> 
11.
 
12.
<b>Dein Name</b><br /> 
13.
<b>Dein Bild</b> 
14.
  </body> 
15.
</html>
Mitglied: nxclass
03.08.2009 um 09:36 Uhr
... ggf. kann man auch die Magischen Funktionen _ _ tostring(), _ _ get() und _ _ set() einsetzen.

Wenn man schon im Konstruktor die Ersetzungsmarken in ein Array einliest, könnte man diese über _ _ set($sKey, $sValue) {} setzen und über _ _ get($sKey) {} auslesen als währen es Variablen der Template Klasse.
01.
// Keine Zeit, mach Du das ...  ;-)
... schön das an die Documentor Tags gedacht wurde!
Bitte warten ..
Ähnliche Inhalte
Off Topic

Arbeitgeber dürfen Mitarbeiterchats nicht einfach überwachen

Information von transoceanOff Topic6 Kommentare

Moin, das hat der Europäische Gerichtshof für Menschenrechte geurteilt. Hier das Original Dokument (englisch) vom Europäische Gerichtshof für Menschenrechte ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgbornErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Hyper-V

Einfaches Powershell Script zum Backup aller HyperV virtuellen Maschinen auf NAS Freigabe

Anleitung von rzlbrnftHyper-V

Die NAS die wir benutzen kann keine Computerkonten in die Schreibberechtigung für eine Freigabe aufnehmen. Da Export-VM immer mit ...

Windows Server

Microsoft Web Platform Installer 5.0 - Gängige Webserver-Dienste (PHP - MySQL - CMS - Blogs etc.) schnell und einfach installiert

Tipp von colinardoWindows Server5 Kommentare

Ein Tipp für alle die das Tool noch nicht kennen. Es bietet einen Assistenten zur Installation von gängigen Webserver-Diensten ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 2 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen16 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement16 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Vmware
Server 2008 r2 vmware terminalserver
Frage von MasterCVmware12 Kommentare

Guten Abend zusammen, ich hoffe , dass einer von euch mir weiterhelfen kann ,bei meinem kack Problem ! Ist ...