so da ich mir jetzt lange genug selber die zähne daran ausgebissen habe brauch ich mal hilfe oder ggf. auch nur nen denkanstoß.
mein problem:
ich habe eine variable $template in welcher der evaluierte inhalt aus einem template steht. dieser inhalt wird nun untersucht und je nachdem verändert.
$regex1 = "/<a href=\"(.*)\.php\"/siU";
$regex2 = "/<a href=\"(.*)\.php\

.*)\"/iesU";
$template = preg_replace($regex1,"<a href=\"\\1.htm\"",$template);
$template = preg_replace($regex2,'$this->parseUrl("\\2", "\\1")',$template);
das heißt wenn ein link auf php endet wird er umgeschrieben in einen htm link und sofern noch variablen übergeben werden wird diese ausgabe noch ein wenig weiter verändert.
funktioniert recht gut das ganze ... allerdings nur solange wie im template kein code der eigentlich auf der seite angezeigt werden soll enthalten ist. der inhalt des templates ist ja im normalfall eine html seite. dort kann ich ja z.b. php code einfach so ausgeben lassen um ihn auf der seite darzustellen. ist dies der fall so darf innerhalb dieser bereiches aber auf keinen fall etwas verändert werden.
sehen kann man das problem wenn man hier im board als gast unterwegs ist und irgend ein thema aufmacht welches code zeilen enthällt. man bekommt nurnoch fehlermeldungen da was umgeschrieben wird was nicht umgeschrieben werden darf.
lange rede kurzer sinn ...
wie kann ich in folgendem beispiel erreichen das der rot markierte teil in jedem fall in ruhe gelassen wird und der rest bearbeitet wird?
Test blabla bar foo <a href="link.php">link</a>blabla <a href="http://www.googel.de">Googel</a> blabla test blubb
mal angenommen dieses beispiel steht in meiner variable $template dann könnte ich ja sagen
if(!preg_match("/www\..*/i",$template)) {
umschreiben
}
nur das würde ja bedeuten egal wo www steht es wird in dem fall nie umgeschrieben. ich müsste also irgendwie bestimmte abschnitte in dem template umschreiben oder keine ahnung wie.
wär für jeden vorschlag dankbar!