Dariusz L.

Dariusz L. programista/
specjalista ds. IT

Temat: zamiana tagów w stringach z wykorzystaiem funkcji...

Witam. Mam problem dość specyficzny. Po 2 godzinach przeszukiwania i analizy przykładów na różnych stronach nie trafiłem na rozwiązanie. Z drugiej strony wygląda na pierwszy rzut oka nieskomplikowanie...

Otóż:

string przedstawia się następująco:
$string="użytkownik [idUser]4[/idUser] usunął materiał";

mam funkcję, która wyświetla mi link do profilu użytkownika oraz różne ikonki na podstawie zmiennej $idUser (zatem na podstawie przykładowej czwórki) i moim celem jest:
1) pobranie liczby pomiędzy [idUser] i [/idUser]
2) wysłanie jej do funkcji, która zwróci mi na podstawie $idUser jakiś string
3) zamienienie [idUser]4[/idUser] na string zwrócony przez funkcję

Podane kroki to moje rozumowanie :/ Jak jest inny sposób, to bardzo chętnie się z nim zapoznam...

konto usunięte

Temat: zamiana tagów w stringach z wykorzystaiem funkcji...

http://pl.php.net/preg_replace_callback
Dariusz L.

Dariusz L. programista/
specjalista ds. IT

Temat: zamiana tagów w stringach z wykorzystaiem funkcji...

$opis=preg_replace_callback("/\[idUser\](.*?)\[\/idUser\]/is", $this->user->zapodaj_dane('$zmiennaIdUser'),$opis);


No dobrze... ale co mam wpisac w miejsce '$zmiennaIdUser', gdzie chcialbym wlepić tę moją czwórkę?Dariusz L. edytował(a) ten post dnia 14.01.09 o godzinie 12:46
Mariusz Przybylski

Mariusz Przybylski Dynamite Studio

Temat: zamiana tagów w stringach z wykorzystaiem funkcji...

Nie chce mi się tego testować, ale powinno zadziałać coś takiego:


function podmien ($wyniki)
{
return User::zapodaj_dane($wyniki[0]);
}
$opis=preg_replace_callback("/\[idUser\](.*?)\[\/idUser\]/is", 'podmien', $opis);


Oczywiście musisz sobie napisać statyczną metodę w klasie User.

konto usunięte

Temat: zamiana tagów w stringach z wykorzystaiem funkcji...

najbardziej mi sie w tym wszystkim podoba zapodaj_dane ;]]
Rafał Kowalewski

Rafał Kowalewski IT Director, F3
Group

Temat: zamiana tagów w stringach z wykorzystaiem funkcji...

jak robisz to w obiekcie, i chcesz użyc $this->funkcja, jako callback, to musisz wpisac tam tablice array($this, "funkcja") np.

$this->opis = preg_replace_callback("/\[idUser\](.*?)\[\/idUser\]/is", array($this, "funkcja"), $this->opis);

Następna dyskusja:

Szukam programisty do aktua...




Wyślij zaproszenie do