[PHP] String isolieren

jwacalex

Well-known member
ID: 104481
L
20 April 2006
240
8
Hallo!
Wie kann ich mit php einen string zwischen 2 zeichenkombinationen wie z.B.
|anfang| und |ende| isolieren, so dass wenn ich einen string mit
|anfang|AblablablaA|ende| habe, der mir das AblablablaA ausgibt
Eine idee wäre es den string 2x zu splitten einmal ab dem |anfang| und einmal nach dem |ende|. problem ist nur, was mache ich, wenn es öfter vorkommt
 
RegExp ;)

PHP:
preg_match_all("/\|anfang\|(.*)\|ende\|/",$string,$matches);
  print_r($matches);
edit:
Überlesen, dass es mehrmals vorkommt. Hab überarbeitet.
 
danke ;)
wie kann ich die stelle im text rausfinden, an der das liegt (der block zwischen |anfang| und |ende|)
 
ich hab ein template indem mit |anfang| und |ende| phpcode gekennzeichnet wird.
diesen wollte ich an entsprechender stelle eval()en
 
jwacalex schrieb:
ich hab ein template indem mit |anfang| und |ende| phpcode gekennzeichnet wird.
diesen wollte ich an entsprechender stelle eval()en
Das kann afaik preg_replace(). Guck im Manual nach, aber da kann man in den Ersetzungstext PHP-Code setzen, der ausgeführt wird. In deinem Fall halt ein eval().

Aber ich würde mir überlegen, ob ein eval() in einem Template-System was verloren hat. Weil genau das is ja der Sinn von Templates: Die Trennung von Code und Inhalt :roll:
 
jwacalex schrieb:
ich hab ein template indem mit |anfang| und |ende| phpcode gekennzeichnet wird.
diesen wollte ich an entsprechender stelle eval()en
hm des is normalerweise aber gar nich gut...
yo mit dem doublesplit kannste das schon machen, is aber nich die feine Englische, ich überleg mir ma was...

x3ntar
 
jwacalex schrieb:
ich hab ein template indem mit |anfang| und |ende| phpcode gekennzeichnet wird.
diesen wollte ich an entsprechender stelle eval()en
In dem Fall macht man normalerweise eine *.inc.php (unvollständige weil zum Einbinden in ein Design vorgesehene PHP-file) und bindet die dann mit include() oder require() ein.
 
Iwie kann man doch mit stripos o.ä. arbeiten und die Stellen ermitteln - v.a. wenn die Anfangs- und Endtags immer die gleichen sind (bekannt) und du sicher bist, dass es ein Anfangs- und Endtag zusammen immer gibt.
 
die |anfang| und |ende| tag sind immer gleich.
ich dachte an sowas string wird ausgeben,bis |anfang| kommt. dann wird der block bis |ende| per eval ausgeführt und dann geht die normale ausgabe weiter