Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Template Parser Script Suckd

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Template Parser Script Suckd

    Mein Ziel ist eigentlich ein relativ einfacher Template Parser , aber das ganze treibt mich noch zum Selbstmord.

    Der Ablauf des Skripts soll hinterher so functionieren
    1. Parser Klasse wird geöffnet und Pfad zur Templatedatei und die einzufügenden Daten werden übergeben.
    2. Zeile für Zeile wird nach den Platzhaltern durchsucht wenn ein Platzhalter
    gefunden wurde wird die Zeile nochmals durchsucht, ansonsten wird sie in ein array geschrieben und es wird mit der nächsten Zeile weiter gemacht... usw.

    So weit so gut , nur ärgert mich mein Script es gibt mir nicht nur die Zeilen aus in dennen keine Platzhalter mehr gefunden wurden (ob jetzt keine drin waren oder die vorhandenen ersetzt wurden) es gibt mir alle möglichkeiten aus. BSP:

    In der datei steht
    {name}
    {alter}
    {beruf}

    einzufügende daten
    {name} = ziege
    {alter} = 23
    {beruf} = {name}nhirte

    AUSGABE:
    ziege
    {name}
    23
    {alter}
    ziegenhirte
    {name}nhirte
    {beruf}

    Das ist das Skript:
    Code:
    <?php
    class parser
    {
    	function parser($template_path,$data)
    	{
    		$this->data				= $data;
    		$this->template_path	= $template_path;
    		$this->pull_template();
    		$this->line_change();
    		echo implode ("
    ",$this->template_log);
    	}
    
    	function pull_template()
    	{
    		$template_file = fopen($this->template_path,"r");
    		while(!feof($template_file))
    		{
    			$template[] = fgets($template_file);
    		}
    		fclose($template_file);
    		$this->template = $template;
    	}
    
    	function line_change()
    	{
    		foreach ($this->template as $template_line)
    		{
    			$this->checkit = true;
    			$this->check($template_line);
    		}
    	}
    	
    	function check($template_line)
    	{
    		if ($this->checkit == true)
    		{
    			$data = $this->data;
    
    			foreach($data as $key => $value)
    			{	
    				$data_key = "{".$key."}";
    				$data_value = $value;
    
    				if(ereg($data_key,$template_line))
    				{
    					$this->checkit = true;
    					$this->charge($data_key,$data_value,$template_line);
    				} else {
    				    $this->checkit = false;
    				}
    			}
    			$this->check($template_line);
    
    		} elseif ($this->check == false){
    			$this->template_log[] = $template_line;
    		}
    	}
    
    	function charge($data_key,$data_value,$template_line)
    	{
    		$template_line = str_replace($data_key,$data_value,$template_line);
    		$this->check($template_line);
    	}
    
    }// END class 
    
    	$template_path = "data.txt";
    	$data	=	array(
    					"title"		=>	"Test",
    					"beruf"	=>	"bauer",
    					"name"		=>	"Kai",
    					"ort"		=>	"Bo{title}chum"
    					);
    	$parser	= new parser($template_path,$data);
    ?>

    schonmal danke im vorraus
    gruss kai

  • #2
    Kann mir da wirklich keiner von euch helfen?

    Kommentar


    • #3
      Zitat von ka-n
      Kann mir da wirklich keiner von euch helfen?
      Sicher geht die Lust gegen Null, nach Fehlern in Deinem Script zu suchen, da es genügend funktionierende Templateklassen gibt.

      Kommentar

      Lädt...
      X