Niestety to co przedstawiłeś, to nie do końca mój przykład. W moim przykładzie dla zamienianych tekstów nie ma znaczników początku i końca.
Stworzyłem ostatecznie coś takiego:
Kod
$matches=array();
preg_match_all('/\[text_(.*)]/',$strona,$matches);
foreach ($matches[0] as $k => $v)
{
$patterns[]='/\\'.$v.'/';
$t=substr($v,1,strlen($v)-2);
$replacements[]=$$t;
}
ksort($patterns);
ksort($replacements);
$strona=preg_replace($patterns, $replacements, $strona);
Ale:
1) O dziwo, dla całego kodu strony działa, a np. jako jeśli zmienna $strona dam np.
Kod
$strona='[text_1] fsgdgdf [text_2]';
otrzymuję komunikat:
Kod
Notice: Undefined variable: text_1] fsgdgdf [text_2 in C:\Program Files\wamp52\www\sokkernew\league_stats.php on line 261
[text_1] fsgdgdf [text_2]
Jak już wspomniałem, dla faktycznego tekstu, na którym działam, działa to dobrze. Ktoś może wytłumaczyć o co chodzi?
2) Może da się to jakoś bardziej elegancko zapisać?