[PHP] preg_replace_callback und eine weitere Variable?

BartTheDevil89

Devilution Media
ID: 87739
L
2 Mai 2006
3.960
103
Hallo,

also ich hab folgenden Auszug aus einer Class:

PHP:
<?php 
class admintpl { 
.............. 
        function cache($name) { //erstellt den Cache eines Templates 
     
			function load_texte($match) 
			{ 
                $data = $match[1]; 
				$data = $this->funktion($data,$sprache);//<------------hier muss ich $sprache was mit laden, deswegen brauch ich die hier	
                return $data; 
			}
		
        $text = "Das ist ein Test mit {wort1,wert} und als Test"; 
        $result = $db->query("Select * from sprachen order by name");//Liste alle Sprachen erstellen 
        while($sprachen = mysql_fetch_array($result)){ 
			$sprache = $sprachen[name];//<-----------Diese Variable $sprache muss ich an load_texte mit übergeben
            $inhalt = preg_replace_callback('~\{wort1,(.+?)\}~', 'load_texte', $text);//Lädt den Text und ruft darin {wort1,...} auf 
			
			//hier wird jetzt für jede Sprache eben eine Datei abgespeichert, die den Inhalt mit den ersetzten Sachen hat 
        } 
    } 
...........     
} 
?>

Dort wird ja über diese Zeile in einem Text das Vorkommen {wort1,..} gesucht und eben ersetzt durch einen Wert aus der Funktion.
PHP:
$inhalt = preg_replace_callback('~\{wort1,(.+?)\}~', 'load_texte', $text);

Die Funktion load_texte ist ja dann die hier:
PHP:
			function load_texte($match) 
			{ 
                $data = $match[1]; 
				$data = $this->funktion($data,$sprache);//<------------hier muss ich $sprache was mit laden, deswegen brauch ich die hier	
                return $data; 
			}

Und genau den Wert $sprache vor der Zeile, die das Vorkommen ersetzt, will ich eben an die Funktion mit übergeben.
Nur wie schaffe ich es, dass ich das jeweilige $sprache mit in der load_texte mit verwenden kann?

Vielen dank für die Hilfe
 
PHP:
function hier_brauch_ich_var()
{ 
  global $var;
  /* ... */
}
Ob das hier in deiner Klasse->Funktion->Funktion-Konstruktion astrein funktioniert, muss du probieren.
 
PHP:
function hier_brauch_ich_var()
{ 
  global $var;
  /* ... */
}
Ob das hier in deiner Klasse->Funktion->Funktion-Konstruktion astrein funktioniert, muss du probieren.

Eben genau nicht....normal könnte ich es ja über global machen, aber in der class funktioniert es nicht. Muss eigentlich sowieso dann auch an die extra Funktion noch $class mit übergen...aber wenn es mit einer Variable läuft, dann sollte es ja auch mit ner zweiten.
Deswegen eben erstmal die Fragen, wie ich $sprache übergeben kann. Denn mit global hab ich es schon versucht und das läuft in der class nicht drin.
 
Speicher die aktuelle Sprache in der Klasse. Mach aus der Funktion zum ersetzen eine Klassen Funktion und aus
PHP:
preg_replace_callback(..., 'load_texte',...

machst du

PHP:
preg_replace_callback(..., array(&$this,'load_texte'),...

und schon hast du in der Funktion alles was du brauchst.
 
Speicher die aktuelle Sprache in der Klasse. Mach aus der Funktion zum ersetzen eine Klassen Funktion und aus
PHP:
preg_replace_callback(..., 'load_texte',...

machst du

PHP:
preg_replace_callback(..., array(&$this,'load_texte'),...

und schon hast du in der Funktion alles was du brauchst.

:ugly:So ein ganz anderer Denkanstoß hilft manchmal. Dankeschön, so läufts natürlich. ;)