Mailinglisten-Archive |
Hi,
ich habe eine regexp, die ähnlich wie PHPLIBs Template-Klasse
nach dem Muster
{befehl(param1:wert1; param2:wert2;)}
sucht. Also z.B.
$content = "{set(blubb:wert1;)} blabla {get(blubb: ;)}";
Nun gibt es einen Befehl, der nennt sich set:
{set(blubb:wert1;)}
... der in meiner Funktionsklasse das Array
$configvar aus den persistant slots setzt, also:
class a {
var $configvar;
function set()
{
// vereinfacht geschrieben, in Wirklichkeit bekommt
// set ein Array mit paramX/wertX-Hashes überliefert
// und setzt dann configvar entsprechend.
$configvar["blubb"] = "wert1";
}
function get()
{
print "configvar[blubb] = ".$this->configvar["blubb"];
}
}
Weiterhin gibt es da den Befehl get(), der so aufgerufen wird:
{get(blubb: ;)}
An dieser Stelle sollte eigtl. der Wert von
$this->configvar["blubb"] ausgegeben werden.
Tut es aber nicht, weil preg_match() offensichtlich "von hinten"
anfängt, nach den gesuchten Strings zu suchen, d.h. zuerst wird
der Befehl get aufgerufen -- logisch, dass nix ausgegeben wird,
weil $this->configvar["blubb"] nichts enthält.
Erst danach stößt preg_match() auf {set(blubb:wert1;)} und führt
die Methode set() aus, die brav $this->configvar["blubb"] füllt.
Frage: wie kann ich das so "umkehren", dass preg_match auch wirklich
am Anfang von $content anfängt zu suchen und zuerst den set-Befehl
findet und danach den Get-Befehl?
--
<?php class new_media_development {
var $url="http://www.rent-a-phpwizard.de/";
var $fon="0931/7843792"; var $fax="0931/7843795";
} /* Björn Schotte, "Mr. PHP" */ ?>
php::bar PHP Wiki - Listenarchive