php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.09.2005, 20:09  
Erfahrener Benutzer
 
Registriert seit: 11.08.2005
Beiträge: 206
ZiMD
Standard Template Klasse

Hi

ich hab mir eine kleine Tremplateklasse geschrieben.

PHP-Code:
<?
error_reporting
(E_ALL);
class 
template {
    private 
$content;
    private 
$teile = array();
    function 
assign($temname$str) {
        
$number count($this->teile);
        
$this->teile[$number]['temname'] = $temname;
        
$this->teile[$number]['str'] = $str;
    }
    function 
display($file$typ 'file') {
        
$this->datei($file$typ);
        
$this->chose();
        echo 
$this->content;
        
$this->content '';
    }
    function 
gimme($file$typ 'file') {
        
$this->datei($file$typ);
        
$this->chose();
        
$foobar $this->content;
        
$this->content '';
        return 
$foobar;
    }
    function 
datei($file$typ) {
        if(
$typ != 'file') {
            
$this->content $file;
        } else {
            
$this->content file_get_contents($file);
        }
    }
    function 
chose() {
        foreach(
$this->teile as $teil) {
            if(
is_array($teil['str'])) {
                
$this->arr($teil['temname'], $teil['str']);
            } else {
                
$this->str($teil['temname'], $teil['str']);
            }
        }
        
$this->teile = array();
    }
    function 
str($temname$str) {
        
$this->content str_replace('{'.$temname.'}'$str$this->content);
    }
    function 
arr($temname$arr) {
        
$foo preg_replace('/.*?\{array:'.$temname.'\}(.*?)\{\/array:'.$temname.'\}.*?/Usim','$1',$this->content);
        
$foobar '';
        
preg_match_all('/\{'.$temname.':(.+)\}/Usim'$foo$array);
        foreach(
$arr as $rr) {
            
$bar '';
            for(
$i 0$i count($array[0]); $i++) {
                
$arrfile $array[1][$i];
                if (empty(
$bar)) {
                    
$bar str_replace($array[0][$i], $rr[$arrfile], $foo);
                } else {
                    
$bar str_replace($array[0][$i], $rr[$arrfile], $bar);
                }
            }
            
$foobar .= $bar;
        }
        
$this->content preg_replace('/\{array:'.$temname.'\}.*?\{\/array:'.$temname.'\}/Usim',$foobar,$this->content);
    }
}
?>
was haltet ihr davon und warum funktioniert sie nicht wenn ich arrays nur mit einem {/array} beenden will?
ZiMD ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 26.09.2005, 21:02  
Erfahrener Benutzer
 
Registriert seit: 11.08.2005
Beiträge: 206
ZiMD
Standard

keiner ne idee?
ZiMD ist offline  
Alt 27.09.2005, 09:44  
Erfahrener Benutzer
 
Registriert seit: 27.08.2007
Beiträge: 391
jens76 befindet sich auf einem aufstrebenden Ast
Standard

wäre durchaus sinnvoll wenn du deinen code mit kommentaren vesieht!

sprich was wird in der methode gemacht oder wozu dient sie
jens76 ist offline  
Alt 27.09.2005, 09:53  
Gast
 
Beiträge: n/a
Standard

Der Grund warum dein regulärer Ausdruck nicht funktioniert ist der, das du nut nach {/array:igenwas} fragst. Du musst die Bedingung erweitern. Hier mal eine funktionsfähige Variante:
PHP-Code:
<?php
$foo 
preg_replace('/\{array:'.$temname.'\}(.*?)\{\/(array|array:'.$temname.')\}si','$1',$this->content);
?>
http://www.cix88.de/cix_php/demo/cix...ster/index.php zum testen (Mit Dank an CIX88, das ist wirklich klasse zum üben. )

Ich gebe jens76 recht, da fehlen Kommentare. Außerdem solltest du deine Variablen-/Funktionsnamen nochmal überdenken. Die sind nicht sonderlich sprechend.
 
 


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
Variable aus Klasse herausbekommen GSJLink PHP Tipps 2008 7 16.02.2008 22:25
String-Parser Klasse - was muss rein? Matze PHP Tipps 2007 2 08.04.2007 22:14
template klasse lindner PHP Tipps 2006 2 13.06.2006 12:33
mehr als eine Klasse einbinden Alpha Centauri PHP-Fortgeschrittene 4 13.04.2006 20:56
Template Klasse unter PHP 4.4.1 funzt nicht CrackPod PHP-Fortgeschrittene 9 30.03.2006 03:44
template in template einfuegen tonne PHP Tipps 2005-2 8 10.11.2005 22:24
Instanz einer Klasse in einer anderen Klasse verwenden Buhmann PHP-Fortgeschrittene 7 28.10.2005 23:12
[Erledigt] Führerschein für Klasse A+B.. Preis OK??? Off-Topic Diskussionen 20 13.07.2005 18:44
Rückgabewert auf einer Klasse anders als in der Klasse micbur PHP Tipps 2005-2 6 10.06.2005 15:06
Template verständniss problem; referenz PHP Tipps 2005 17 19.05.2005 06:06
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
[Erledigt] Template Parser PHP-Fortgeschrittene 9 06.10.2004 23:04
Klassenobjet in anderer Klasse benutzen inu PHP Tipps 2004 6 19.09.2004 10:58
Klasse ändern UniQ PHP Tipps 2004 5 24.08.2004 14:46
[Erledigt] Template Scripting PHP-Fortgeschrittene 2 04.06.2004 18:34


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

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