php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Thema geschlossen
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.10.2011, 01:01  
Neuer Benutzer
 
Registriert seit: 29.10.2011
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
dor557 befindet sich auf einem aufstrebenden Ast
Standard Template platzhalter

Hallo zusammen. Ich Programmiere nun schon einige Jahre in PHP.

Das meiste habe ich mir aus Howtos und Docus zusammen gelernt. Nun stehe ich vor einem Problem das mir bisher keine seite richtig erklären konnte das ich es verstehe. Namlich die Platzhalter bei str_replace.

Ich habe mir eine template-classe "geschrieben" wohl eher aus einem Tutorial zusammen gebaut....

nun stehe ich vor dem Problem das ich gerne verschiedene Variablen benutzen möchte wie aus meiner template.inc.php zu erkennen ist

hier mal der Code
PHP-Code:
<?php

class Template {
   var 
$template;
   var 
$templates = array();
   
   function 
load($filename) {
      
$tplFile $_SERVER['DOCUMENT_ROOT'].'/templates/'.''.$filename;
      
$this->template file_get_contents($tplFile);
      
$this->parse_tpl_files();
      
$this->publish();
   }
   
   function 
parse_tpl_files() {
     
$this->template str_replace("<#var_session#>"session_name().'='.session_id(), $this->template);    
     
$this->template str_replace("<#tpl_"'<?php $template = new Template;$template->load("'$this->template);
     
$this->template str_replace("#>"'.tpl"); ?>'$this->template);       
   }

   function 
publish() {
             eval(
"?>".$this->template."<?");
   }
}

?>
zur zeit habe ich nur die template dateien und die var_session ein gebunden... würde gerne mehr variablen verwenden. Dann bei den Templates laden gibt es sicherlich auch ne Inteligentere Lösung als ich sie Hier verwendet habe...

Ich habe mal gesehen das man das mit Platzhaltern machen kann beim str_replace da sind dann / \ /3 usw zu sehen aber ein muster kann ich da nicht erkennen.

Kann mir da evtl jemand eine Gute docu sagen oder mir das evtl erklären ?

Wer verbesserungen an meinem oben geposteten php code hat bin ich auch sehr dankbar für...

Grüsse Sascha
dor557 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 30.10.2011, 03:15  
Neuer Benutzer
 
Registriert seit: 29.10.2011
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
dor557 befindet sich auf einem aufstrebenden Ast
Standard

habe Hier eine beschreibung gefunden...

nun sieht die templates.inc.php wie folgt aus :

PHP-Code:
<?php
class Template {
   var 
$template;
   var 
$templates = array();
   
   function 
load($filename) {
      
$tplFile $_SERVER['DOCUMENT_ROOT'].'/templates/'.''.$filename;
      
$this->template file_get_contents($tplFile);
      
$this->parse_tpl_files();
      
$this->publish();
   }
   
   function 
parse_tpl_files() {
     
// Variable Ersetzen
     
$this->template preg_replace_callback("#\<\#var_(.*)\\#\>#Uis"'ersetze_variable'$this->template);    
     
// template laden
     
$this->template preg_replace("#\<\#tpl_(.*)\\#\>#Uis"'<? $template = new Template; $template->load($1.".tpl"); ?>'$this->template);   
   }
   
   function 
publish() {
             eval(
"?>".$this->template."<?");
   }
}
   function 
ersetze_variable($variable) {
     
$such_var $variable[1];
     if (
$such_var == 'session') {
       
$result session_name().'='.session_id();
     } else 
$result '<?php echo $'.$such_var.'; ?>';
     return 
$result;  
   }

?>
Die Perfekte lösung ist es aber noch nicht... mal gespannt wie sich das auf den rest der seite auswirken wird
dor557 ist offline  
Alt 30.10.2011, 04:32  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

php4 ( past ):
PHP-Code:

class className {
   var 
$a;
   var 
$b;
   var 
$c;

   function 
className() { /* i am the constructor */ }

php5 ( now ):
PHP-Code:

class className {
   public
      
$a$b$c$d;

   public function 
__construct() { /* i am what i means to be */ }

Also spätestens wenn die ersten Versionen von PHP5 schon unsupported sind würd ich aufhören in PHP4 zu arbeiten
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline  
Alt 30.10.2011, 13:18  
Erfahrener Benutzer
 
Registriert seit: 03.04.2010
Beiträge: 191
PHP-Kenntnisse:
Anfänger
Suralc befindet sich auf einem aufstrebenden Ast
Standard

Warum willst du überhaupt mit regexp Arbeiten? Wenn du schon eval benutzt, kannst du auch deine Templates direkt in PHP schreiben und brauchst keine extra Templatesprache.

demo.php
PHP-Code:
<?php if($something): ?>
     <div><?=$htmlstring;?></div>
<?php endif; ?>
<form method="<?=$method;?>" >
   <?php foreach($vars as $var): ?>
    <input name="<?=$var;?>" />
   <?php endforeach;?>
ist dank der Alternativen Schreibweise nicht wirklich schwerer zu verstehen, als jede gängie Templatesprache(abhängig von short_tags_open (ab php 5.4 dann irrelevant (zumindest so, wie ich es grade geschreiben habe).

Nur als schlechtes Beispiel:
PHP-Code:
<?php

class Template {

   public function 
assign$variable$value null ) {
        if (
is_array($variable)) {
            
$this->vars += $variable;
        }
        else {
            
$this->vars[$variable] = $value;
        }
        return 
$this;
    }
    protected function 
renderFiles() {
       
// $this->innerTemplate->setValues($this->vars);
       // $v = $this->innerTemplate;
        
$i 0;
        
extract($this->vars);
        
ob_start();
        foreach (
$this->files as $file) {
            if (
$this->render[$i] == true) {
                include 
$file;
            }
            else {
                echo 
file_get_contents($file);
            }
            
$i++;
        }
        
$contents ob_get_contents();
        
ob_clean();
        return 
$contents;
    }
    public function 
draw$getAsString false ) {
      
$content =   $this->renderFiles();
        if (
$getAsString == true) {
            return 
$content;
        }
        else {
            echo 
$content;
        }
}

}
http://php.net/manual/de/control-str...ive-syntax.php
__________________
Zitat:
Zitat von nikosch Beitrag anzeigen
Naja, anscheinend spricht die Steckdose kein HTTP. LOL
Suralc ist gerade online  
Thema geschlossen


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
html-Code in einem Template einfügen sz-online PHP Einsteiger 14 03.09.2011 19:19
[Erledigt] Problem mit eigenem Template System! Nickstar PHP Tipps 2010 8 09.07.2010 16:12
Scriptangebot Serpent Template Engine McSodbrenner Scriptbörse 3 26.03.2010 21:37
PHP wird im Template nicht erkannt Paratron PHP Tipps 2009 23 04.10.2009 19:50
Template parser Cout PHP Tipps 2009 1 22.05.2009 10:35
[Erledigt] template - {{user_admin==true.start}} Screeze PHP Tipps 2009 11 06.01.2009 19:29
[Erledigt] Variablen in einem Template ersetzen KarlEgon PHP-Fortgeschrittene 69 04.12.2008 14:51
Lieber Template oder Normal für ein community? mysteryxxx PHP Tipps 2008 8 17.09.2008 23:04
template in template einfuegen tonne PHP Tipps 2005-2 8 10.11.2005 22:24
Platzhalter im Template Zero.exe PHP Tipps 2005-2 3 30.08.2005 12:09
Template verständniss problem; referenz PHP Tipps 2005 17 19.05.2005 06:06
suche ein bestimmtes template system PHP Tipps 2004-2 2 07.11.2004 19:49
[Erledigt] Template Parser PHP-Fortgeschrittene 9 06.10.2004 23:04
Template Parser Script Suckd PHP-Fortgeschrittene 2 11.07.2004 17:20
[Erledigt] Template Scripting PHP-Fortgeschrittene 2 04.06.2004 18:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
* als platzhalter in php, php template method, php template platzhalter, php template

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:41 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