webForumDet fria alternativet

preg_replace

4 svar · 390 visningar · startad av Gaski

GaskiMedlem sedan juni 2000310 inlägg
#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%%.

aasahMedlem sedan mars 20034 471 inlägg
#2

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
#3
<?php
$variabeln =' Fungerar juh! ';
$variabelnamn = 'variabeln';
$text = 'fooo%%variabeln%%moo';
$text = preg_replace('/\%\%'.$variabelnamn.'\%\%/i', ${$variabelnamn}, $text);
?>
GaskiMedlem sedan juni 2000310 inlägg
#4

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
#5

Å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";
256 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
123 ms — hämta statistik (db)
131 ms — hämta tråd, inlägg och bilagor (db)