Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]wyrazenia reg.
pEbE
post
Post #1





Grupa: Zarejestrowani
Postów: 106
Pomógł: 3
Dołączył: 21.03.2006
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


  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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Kicok
post
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
pEbE
post
Post #3





Grupa: Zarejestrowani
Postów: 106
Pomógł: 3
Dołączył: 21.03.2006
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Dziękuję za radę - pomogło, problem rozwiązany.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.12.2025 - 21:46