[PHP] Parsowanie (preg_replace_callback)

0

Witam serdecznie. Mój problem jest następujący:

Mam takie cuś:

To jest coś tam coś tam [xxx=yyy]jakiś tam
tekst, który
ma być potraktowany
fukncją[/xxx] i dalej
blablabla...

I teraz muszę to zastąpić (to, co w znacznikach xxx musze potraktować funkcją pewną). Funkcja ma przyjmować oba parametry.

ROZWIĄZANIE by CyberKid:

function funkcja($tekst, $parametr)
{
//var_dump($tekst);
//var_dump($parametr);

return "po zmianie( {$tekst}, $parametr )";
}

echo preg_replace("#\[xxx(=.*?)?\](.*?)\[/xxx\]#e", "funkcja('\\1','\\2')", "tererefeere [xxx=sdfdsfds]jakis tam tekst[/xxx]sdfdsfs");

Pozdrawiam!

0
jakubkrol napisał(a)

Ponieważ z jednym parametrem sobie poradzę, ale jak użyć dwa? Ponieważ do funkcji, która zwróci coś musi mieć przekazane dwa parametry: i yyy i `jakiś tam...

Spróbuj to napisać po polsku, bo wydaje mi się, że sam nie wiesz czego potrzebujesz. "ponieważ", to spójnik łączący zdania składowe zdania złożonego, więc wciskanie go na początek jest niezbyt na miejscu.

Co do problemu, to da się go rozwiązać na preg_replace stosując przełącznik "e"

function funkcja($tekst, $parametr)
{
//var_dump($tekst);
//var_dump($parametr);

return "po zmianie( {$tekst}, $parametr )";
}

echo preg_replace("#\[xxx(=.*?)?\](.*?)\[/xxx\]#e", "funkcja('\\1','\\2')", "tererefeere [xxx=sdfdsfds]jakis tam tekst[/xxx]sdfdsfs");
0

Zabawne.. Gdzie indziej miałem błąd xD

Spróbuj to napisać po polsku, bo wydaje mi się, że sam nie wiesz czego potrzebujesz. "ponieważ", to spójnik łączący zdania składowe zdania złożonego, więc wciskanie go na początek jest niezbyt na miejscu.

w rzeczy samej troszke nie po Polsku użyłem tego słowa, przepraszam :)

Co do problemu, to da się go rozwiązać na preg_replace stosując przełącznik "e"

rzeczywiście też działa, dziękuję bardzo :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1