Verwendung von $ Variablen in preg_replace in PHP

8

Ähm ... wie verwende ich Variablen in einem Aufruf von preg_replace?

Das hat nicht funktioniert:

%Vor%

Ja, dem $num ist ein Pluszeichen vorangestellt. Ja, ich möchte " tag the $num as <$text/> ".

    
Steve 09.09.2009, 16:42
quelle

2 Antworten

12

Ihr Ersatzmuster sieht zwar gut aus, aber da Sie einfache Anführungszeichen in dem passenden Muster verwendet haben, wird Ihre $ num-Variable nicht eingefügt. Versuchen Sie stattdessen

%Vor%

Beachten Sie auch, dass es beim Erstellen eines Musters aus "unbekannten" Eingaben wie diesem normalerweise eine gute Idee ist, preg_quote zu verwenden. z.B.

%Vor%

Obwohl ich denke, dass der Variablenname in Ihrem Fall immer numerisch ist.

    
Paul Dixon 09.09.2009, 16:45
quelle
12

Variablen werden nur in Zeichenketten, die mit deklariert wurden, erweitert doppelte Anführungszeichen . Verwenden Sie also doppelte Anführungszeichen:

%Vor%

Oder verwenden Sie die Verkettung von Strings:

%Vor%

Sie sollten sich auch preg_quote ansehen, wenn Ihre Variablen Meta-Zeichen für reguläre Ausdrücke enthalten können.

    
Gumbo 09.09.2009 16:44
quelle

Tags und Links