Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [RegExp][PHP]Array
Forum PHP.pl > Forum > PHP
Spirit86
Witam, mam następujący problem, chcę, aby każde wyrażenie typu {lang:index} zostało zastąpione $lang['index'] , gdzie index oczywiście byłby różny. W związku z czym napisałem Wyrażenie:

  1. <?php
  2. $this->szablon = preg_replace(&#092;"#{lang:(.*?)}#si\", $lang['1'] , $this->szablon);
  3. ?>


jedankże, jak się zapewne domyślacie nie działa winksmiley.jpg. Tzn. Mogę wydobyć spokojnie ww. index, jednakże nie mam pojęcia jak do "wcisnąć" w tablicę $lang. Jakieś pomysły?
bendi
Jeżeli chcesz zastąpić znaleziony tekst jakąś wartościa z wcześniej zdefiniowanej tablicy to zrób tak:
  1. <?php
  2. $this->szablon = preg_replace(&#092;"#{lang:(.*?)}#sie\", '$lang['1']' , $this->szablon);
  3. ?>


Natomiast jeżeli chcesz zamienić znaleziony ciąg znaków, na tekst $lang[klucz] to zrób tak:
  1. <?php
  2. $this->szablon = preg_replace(&#092;"#{lang:(.*?)}#si\", '$lang['1']' , $this->szablon);
  3. ?>


Jak widać różnica opiera się o modyfikator e który służy do interpretowania zamienianego ciągu znaków jako kod php, działanie takie samo jak w przypadku funkcji eval" title="Zobacz w manualu PHP" target="_manual
Spirit86
hehe, działa biggrin.gif
próbowałem podobnej wersji tyle tylko, że zamiast ' dałem " i nie działało, thx!
Pozatym trochę się chyba pomyliłeś w poście, napisałeś 2 razy ten sam przykład tongue.gif
bendi
Cytat(Spirit86 @ 2005-06-07 12:16:04)
Pozatym trochę się chyba pomyliłeś w poście, napisałeś 2 razy ten sam przykład tongue.gif

No to sprwadź działanie obu - przecież napisałem jaka jest różnica cool.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.