Mit $ Variablen in preg_replace in PHP
Ähmm... wie benutze ich Variablen in einem Aufruf von preg_replace?
Diese hat nicht funktioniert:
foreach($numarray as $num => $text)
{
$patterns[] = '/<ces>(.*?)\+$num(.*?)<\/ces>/';
$replacements[] = '<ces>$1<$text/>$2</ces>';
}
Ja, die $num
ist vorangestellt ein Pluszeichen. Ja, ich will "tag the $num as <$text/>
".
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Ersatz-Muster sieht ok, aber wie hast du Sie verwendet einfache Anführungszeichen in dem passenden Muster, Ihre $num variable nicht in Sie eingefügt werden. Versuchen Sie stattdessen,
Beachten Sie auch, dass, wenn der Aufbau einem Muster von "unbekannt" Eingaben wie dieser, ist es normalerweise eine gute Idee,preg_quote. z.B.
Obwohl ich denke, angesichts der name der Variablen ist es immer numerisch in Ihrem Fall.
Variablen wird nur erweitert werden, in strings deklariert, die mit doppelten Anführungszeichen. Also entweder doppelte Anführungszeichen verwenden:
Oder verwenden Sie die string-Verkettung:
Sollten Sie auch einen Blick auf
preg_quote
wenn Ihre Variablen enthalten können reguläre Ausdrücke-Metazeichen.