phpbar.de logo

Mailinglisten-Archive

[php] preg_replace() und include()

[php] preg_replace() und include()

Andreas Brandl php-mailinglist at andreas-brandl.de
Sam Mar 5 21:46:59 CET 2005


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