Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] podmiana wartości, nazwa zmiennej w zmiannej wykrytej przez regexy
Forum PHP.pl > Forum > PHP
macek
Witam kolegów smile.gif Nazwa mojego tematu jest pewnie straaasznie chaotyczna, ale trudno opisać zagadnienie które mnie interesuje ;p
Nie ma co się rozwodzić po i tak nie da się tego po polsku opisać, spójrzcie na fragment kodu:
  1. <?php
  2. $test['pierwsza'] = 'wartosc pierwszej';
  3. $test['druga'] = 'wartosc drugiej';
  4. $test['trzecia'] = 'wartosc trzeciej';
  5. echo eregi_replace( '<!~([a-z0-9_-]+)>', $test["1"], 'tekkkst..= <!~pierwsza> =tekst');
  6. ?>

Oczywiście powyższy kod nie działa winksmiley.jpg Co chcę osiągnąć - wystąpienie znaków <!~coś~> zamienić wartością będącą w tablicy asocjacyjnej pod indeksem "coś".. Oczywiście jak wpiszę np <!~druga~>, wyrażenie powinno mi tego stringa zamienić na wartość $test['druga'], czyli dokładnie na 'wartosć drugiej' .. Kombinowałem na różne sposoby, bezskutecznie a poziom mojej cierpliwości się kończy tongue.gif Ktoś jest w stanie mi pomóc ? smile.gif

-- EDIT:
Próbówłem jeszcze puścić to przez inną metodę żeby zobaczyć co tam de facto się dzieje:
  1. <?php
  2. eregi_replace( '<!~([a-z0-9_-]+)>', $this->GetVar("1"), 'dupa= <!~druga> =dupa');
  3. ...
  4. private function GetVar($id) {
  5. echo $id;
  6. }
  7. ?>

Tak do metody GetVar przechodzi i wyświetlany jest normaln string \1, jeśli wywołam ją przez
  1. <?php
  2. eregi_replace( '<!~([a-z0-9_-]+)>', $this->GetVar("1"), 'dupa= <!~druga> =dupa');
  3. ?>

To w ogóle powstaje niezły bigos bo wyświetla mi w przeglądarce napis SOH z górnym indeksem a w źródle jest kulka takie coś jak <li> ;P
Ktoś potrafi mi rozjaśnić horyzont ? ;\
SirZooro
Poczytaj o funkcji preg_replace_callback.
macek
Bingo smile.gif Odpowiedziałeś również na moje drugie pytanie którego jeszcze tu nie zadałem - mianowicie wykonywanie funkcji po wykryciu jakiegoś stringa smile.gif
Temat do zamknięcia, dzięki wielkie smile.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.