phpbar.de logo

Mailinglisten-Archive

[php] preg_replace bockig mit Subpattern als Variabler

[php] preg_replace bockig mit Subpattern als Variabler

Ulf Wendel ulf_(at)_redsys.de
Tue, 25 Jul 2000 20:41:13 +0200


Oliver Kummerow wrote:
> 
> Hallo
> 
> wenn es denn geht, soll ein captured subpattern (gefangenes
> Untermuster <g>) in preg_replace als Index eines Array dienen und
> zwar für das "Hash"en einer Ersetzung aus diesem Array. Das
> scheint aber nicht hinzuhauen. Ist da irgendeine special Syntax
> fällig?
> 
> zur Verdtl.:
> 
> $data = preg_replace
> (
>   "~
>     limitleft\#(\d+)\".*limitright
>   ~Uxis",
>   " (".$this->index[\\1].") ",
>   $data
> );

Backreferenzes können nur innerhalb des Regulären Ausdruck verwendet
werden. Anders als in Perl wird nicht automatisch eine Variable $1
erzeugt.

Mit einem zweistufigen Vorgehen solltest Du das Problem lösen können.
preg_match_all() greift alle Vorkommen und preg_replace_all() oder
str_replace() macht die Ersetzungen.

Ulf


php::bar PHP Wiki   -   Listenarchive