php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.08.2004, 09:34  
Erfahrener Benutzer
 
Registriert seit: 19.06.2004
Beiträge: 665
konsti
Standard templatesystem - variables ersetzen

ich bastel gerade an meinem eigenen kleinen template-system, und möchte nun die variablen im template ersetzen. dort stehen sie in der form {$name}.
aber wie ersezte ich eben diesen string surch den inhalt der variable $name?
bis hier bin ich gekommen:
PHP-Code:
preg_replace('/(\{)(\$)(.)(\})/',' ...'$data); 
aber wodurch muss ich nun ersetzen?
konsti ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.08.2004, 09:48  
Gast
 
Beiträge: n/a
Standard

$tpl = 'der inhalt deines templates {NAME}';

$repla = array(
"NAME" => 'hallo Du');

foreach($repla as $key=>$elem){
$tpl = str_replace("{".$key."}", $elem, $tpl);
}
  Mit Zitat antworten
Alt 07.08.2004, 09:53  
Erfahrener Benutzer
 
Registriert seit: 19.06.2004
Beiträge: 665
konsti
Standard

ja, dann muss ich aber immer alle variablen in das array schreiben... bisschen umständlich, find ich... gibt es nicht einen einfacheren weg
{$abc} durch dein inhalt der variable $abc und
{$muha} durch dein inhalt der variable $muha und so weiter...
zu ersetzen?
konsti ist offline   Mit Zitat antworten
Alt 07.08.2004, 10:00  
Gast
 
Beiträge: n/a
Standard

wenn du jetzt eine funktion definierst bsp.:

datei class.template.php
<?php
class template {
// Replace Funktion
function &replace($tpl, $repla){
foreach($repla as $key=>$elem){
$tpl = str_replace("{".$key."}", $elem, $tpl);
}
return $tpl;
}
}
?>

datei index.php

<?php
require_once("class.template.php");

echo template::replace($tpl, array(
"NAME" => $name,
"DATUM" => date("d.m.Y", time())));

?>

ich finde es nicht aufwendig da:

jedes template ja auch andere strings zu ersetzen hat
und durch eine sinnvolle Klasse es ja doch schon ziehmlich einfach gelöst ist
  Mit Zitat antworten
Alt 07.08.2004, 10:08  
Erfahrener Benutzer
 
Registriert seit: 19.06.2004
Beiträge: 665
konsti
Standard

so, jetzt hab ich eine kleine nette klasse geschrieben... (ich weiß, da kann man noch was machen)...
auf jeden fall funktioniert die jetzt prima!
PHP-Code:
<?php
class tpl
{
    var 
$variables;

   function 
__construct()
    {
        
$this->variables = array();
    }

    function 
tpl()
    {
        
$this->__construct();
    }

    function 
template($tpl)
    {
        if (
file_exists('templates/'.$tpl.'.tpl'))
        {
            
$data file_get_contents('templates/'.$tpl.'.tpl');
            foreach (
$this->variables as $key=>$elem)
            {
                
$data str_replace('{$'.$key.'}'$elem$data);
            }
            echo 
$data;
        }
    }

    function 
add_key($name,$value)
    {
        
$this->variables[$name] = $value;
    }

    function 
remove_key($name)
    {
        unset(
$this->variables[$name]);
    }
}
?>
und das tollste an der klasse ist: sie ist zu PHP4 und PHP5 kompatibel!
konsti ist offline   Mit Zitat antworten
Alt 07.08.2004, 10:14  
Gast
 
Beiträge: n/a
Standard

  Mit Zitat antworten
Alt 07.08.2004, 10:56  
Erfahrener Benutzer
 
Registriert seit: 02.08.2004
Beiträge: 209
PHP-Kenntnisse:
Fortgeschritten
Chance
Chance eine Nachricht über ICQ schicken
Standard

Es geht auch per Eval, ohne {} :
eval ("\$Template = \"".addslashes($Template)."\";");
Chance ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
String durchsuchen und ersetzen unabhängig von Groß / KLein PHP Tipps 2006 2 09.07.2006 23:29
geschachtelten array sortieren, enter ersetzen und umlaute moose PHP Tipps 2006 5 20.04.2006 12:24
String ersetzen Benshee PHP Tipps 2006 4 02.04.2006 21:43
Problem mit der preg_replace - Ersetzen einer Zeichenkette reimondo PHP Tipps 2006 10 07.02.2006 22:36
Anführungszeichen ersetzen PHP Tipps 2005-2 6 28.09.2005 20:39
[Erledigt] Beste &quot;Struktur&quot; für ein Templatesystem PHP-Fortgeschrittene 11 12.08.2005 05:21
Templatesystem Denkansatz? atom-dragon PHP Tipps 2005-2 12 28.07.2005 22:39
unbekannten teilstring mit anfang/end-markierung ersetzen janni PHP Tipps 2005 14 29.04.2005 14:53
regulärer Ausdruck zum dynamischen ersetzen in einem templat robo47 PHP Tipps 2004 3 02.11.2004 08:25
[Erledigt] includ. Text ersetzen ohne vars PHP Tipps 2004 3 13.09.2004 23:16
CMS + Smarty? oder eigenes Templatesystem? Corvin PHP-Fortgeschrittene 9 04.09.2004 11:07
[Erledigt] RegExp: Dynamisches Ersetzen PHP-Fortgeschrittene 5 23.07.2004 13:39
Templatesystem PHP-Fortgeschrittene 7 18.07.2004 15:45
Reguläre Ausdrücke beim suchen und ersetzen Off-Topic Diskussionen 5 05.07.2004 15:35
Wie Realisiere ich ein Templatesystem? PHP Tipps 2004 21 09.06.2004 01:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
template datei durchsuchen und ersetzen, php template variablen ersetzen, php template suchen ersetzen, template suchen ersetzen, php variablen in string werden nicht ersetzt, eigenes templatesystem data array, php preg_replace variable in zeichenkette, template system variablen, php template suchen ersetzern, php tpl template content ersetzen, templatesystem variablen, php template inhalt ersetzen, php ersetzt variablen im string, php str_replace template array, php template-variable preg_replace, |str_replace smarty text mehrere ersetzen, smarty variablen in template ersetzen, php preg_replace template {var}, php replace variables in template, php funktion variable ersetzen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.