Mailinglisten-Archive |
Hallo Michael,
mstenz-design at web.de schrieb:
> Hallo Zusammen,
>
>
> ich möchte, falls in einem Text eine bestimmte Zeichenfolge (z.B. [Addon|Login]) vorkommt, dass genau an dieser Stelle (vor und danach ist es möglich, dass Text vorhanden ist) ein include durchgeführt wird.
>
> $content = preg_replace( "'\[Addon|Login\]'" , include('site/login.php') , $content ); // Login
>
> Bei obigem Versuch von mir, wird das include IMMER durchgeführt. Egal ob der geforderte String vorkommt, oder nicht.
> Gibt es eine Möglichkeit dies zu lösen (vielleicht auch anders).
Kommt darauf an, was in der login.php drin ist. Wenn nur statischer
HTML-Code drin ist: Datei vorher auslesen, in Variable schreiben und
preg_replace entsprechend anpassen.
Wenn php Code in login.php ist, kannst du:
a) wenn es nur auf den Output ankommt: mittels ob_* den Output abfangen
und in eine Variable schreiben
b) wenn es auf den Code ankommt einfach vorher includen
Alternativ kannst du noch vorher ein
<snip>
if (preg_match("'\[Addon|Login\]'",$content) {
replace, include, usw...
}
</snip>
einbauen. Performanter wäre vielleicht doppeltes strstr()
HTH,
regards,
Andi
php::bar PHP Wiki - Listenarchive