GaskiMedlem sedan juni 2000310 inlägg Jag skulle vilja åstakomma det som koden nedan gör utan att behöva hårdkoda variabelnamnet i replace-parametern.
$text = preg_replace('/\%\%variabel\%\%/i', $variabel, $text);
Dvs, $text innehåller %%vadsomhelst%% och då ska $vadsomhelst hämtas och ersätta %%vadsomhelst%%.
aasahMedlem sedan mars 20034 471 inlägg
Gaski skrev:
Jag skulle vilja åstakomma det som koden nedan gör utan att behöva hårdkoda variabelnamnet i replace-parametern.
$text = preg_replace('/\%\%variabel\%\%/i', $variabel, $text);
Dvs, $text innehåller %%vadsomhelst%% och då ska $vadsomhelst hämtas och ersätta %%vadsomhelst%%.
Inte 100 säker på att jag förstår vad du vill göra men... Löser detta ditt problem?
$text = preg_replace('/\%\%'.$variabel.'\%\%/i', $variabel, $text);
PeeerMedlem sedan mars 20025 907 inlägg <?php
$variabeln =' Fungerar juh! ';
$variabelnamn = 'variabeln';
$text = 'fooo%%variabeln%%moo';
$text = preg_replace('/\%\%'.$variabelnamn.'\%\%/i', ${$variabelnamn}, $text);
?>
GaskiMedlem sedan juni 2000310 inlägg Hmm, det är nära men ändå så långt bort :)
Även nu har du hårdkodat variabelnamnet innan, meningen är att den skall hämta det i preg_replace-satsen.
Det jag söker är alltså någonting som det här nedan (som inte fungerar):
$text = preg_replace('/\%\%([^\%]*?)\%\%/i', ${$1}, $text);
aasahMedlem sedan mars 20034 471 inlägg Åhå! Explode är en trevlig funktion:
$arr = explode("%%", $text);
$arr[1] = ${$arr[1]};
$textProc = implode("%%", $arr); //Om du vill ha resultatet med %% kvar i. ELLER
$textUtan = implode("", $arr);
Exempel:
$k = 9;
$knas = "trevl";
$text = "En %%knas%%ig %%k%%urre";
//Då blir:
$arr : (0 => "En ", 1 => "knas", 2=> "ig ", 3 => "k", 4 => "urre");
$textProc : "En %%trevl%%ig %%k%%urre";
$textUtan : "En trevlig kurre";