Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]wyrazenia reg.
Forum PHP.pl > Forum > Przedszkole
pEbE
  1. <?php
  2. $parsed = preg_replace( '/{lang.([^}]+)}/e', '$lang[1]', $parsed );
  3. $parsed = preg_replace( '/{([^}]+)}/e', '$this->dane["1"]', $parsed );
  4. ?>


Problem polega na tym, że chcę automatycznie przypisać znalezione przez funkcję preg_replace dane do zmiennej, lecz o ile w drugiej linijce wszystko działa (przypisuje dla $this->dane) to w pierwszej już nie. $lang jest wczytywana z pliku i została dodana do zmiennych globalnych. Proszę o pomoc w rozwiązaniu problemu.
Kicok
1. Przed pierwszym wyrażeniem dodaj linijkę:
  1. <?php
  2.  
  3. print_r( $lang );
  4.  
  5. ?>

i sprawdź, czy tablica $lang posiada odpowiednie klucze (te, które pobierasz wyrażeniem)

2. Zamień sobie '$lang[\\1]' na '$lang["\\1"]'

3. "{" oraz "}" są metaznakami w wyrażeniach regularnych, spróbuj umieścić przed nimi backshasha (\), chociaż w tym przypadku pewnie nic to nie da.
pEbE
Dziękuję za radę - pomogło, problem rozwiązany.
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.