G Gaski Medlem sedan juni 2000 310 inlägg Frågan 31 maj 2006 09:05 #1 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%%.
A aasah Medlem sedan mars 2003 4 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);
Peeer Medlem sedan mars 2002 5 907 inlägg <?php
$variabeln =' Fungerar juh! ';
$variabelnamn = 'variabeln';
$text = 'fooo%%variabeln%%moo';
$text = preg_replace('/\%\%'.$variabelnamn.'\%\%/i', ${$variabelnamn}, $text);
?>
G Gaski Medlem sedan juni 2000 310 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);
A aasah Medlem sedan mars 2003 4 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";