Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: regexp i podmiana zmiennej
Forum PHP.pl > Forum > PHP
menic
Osttanio zatrzymałem sie na takim problemie. Mam string np.
Kod
blabla [[text]] blabla
. I chciałbym aby zawartosc [[text]] została zastapiona wartościa zwróconą przez klasa::get('text'). Jak sie do tego zabrać?
c3zi
Witam,


Nie wiem czy dobrze rozumiem problem, ale mozesz skorzystac z wyrazen regularnych, wlasciwie uzyc funkcji preg_replace.


  1. <?php
  2. preg_replace('[[text]]',klasa::get('text'),'blabla [[text]] blabla');
  3. ?>
menic
Zgadza sie , tylko zawartosc miedzy [[ a]] bedzie rozna. Tak wiec trzeba wyciagnac text z [[ ]] i wsadzic go do klasa::get() :/
luinnar
Manual prawdę Ci powie... preg-replace" title="Zobacz w manualu PHP" target="_manual poczytaj o parametrze "replacement".
menic
Przyznam sie ze na wyrazeniach regularnych sie nei znam.
  1. <?php
  2. $s = preg_replace( "#[[(.*?)]]#si", " swConfig::get('$1') ", $s );
  3. ?>
Zwraca mi stringa z
Kod
blabablabla swConfig::get('sw_ModAcsFile') bla
sad.gif

jak to zrobić aby było "dobrze"?
c3zi
  1. <?php
  2. $s = preg_replace( "#[[(.*?)]]#si", swConfig::get('$1'), $s );
  3. ?>
menic
takie coś nie działa ;/

------------
EDITED:
juz mam
  1. <?php
  2. $s = preg_replace( "#[(.*?)]#e", "swConfig::get('1')" , $s );
  3. ?>
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.