This is a discussion on regular expression : {link} within the PHP Language forums, part of the PHP Programming Forums category; Can someone help me to make a regular expression for this sort of replacement : text with {link:pagehref}a link{/...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Can someone help me to make a regular expression for this sort of
replacement : text with {link:pagehref}a link{/link}. replace to -> text with <a href="pagehref">a link</a> I tried several things but nothing seems to work... e.g. $value=preg_replace("/\{link\:(.+?)\}(.+?)\{\/link\}/s","<a href=\"$1\" target=\"_blank\">$2</a>",$value); Thanks in advance! |
|
|||
|
gehegeradeaus@gmail.com wrote: > Can someone help me to make a regular expression for this sort of > replacement : > > text with {link:pagehref}a link{/link}. > > replace to -> > > text with <a href="pagehref">a link</a> > > I tried several things but nothing seems to work... e.g. > > $value=preg_replace("/\{link\:(.+?)\}(.+?)\{\/link\}/s","<a href=\"$1\" > target=\"_blank\">$2</a>",$value); > > Thanks in advance! try to use str_replace() instead... see it here: http://de.php.net/str_replace |
|
|||
|
gehegeradeaus@gmail.com napisal(a):
> Can someone help me to make a regular expression for this sort of > replacement : > > text with {link:pagehref}a link{/link}. > > replace to -> > > text with <a href="pagehref">a link</a> > > I tried several things but nothing seems to work... e.g. > > $value=preg_replace("/\{link\:(.+?)\}(.+?)\{\/link\}/s","<a href=\"$1\" > target=\"_blank\">$2</a>",$value); > > Thanks in advance! Try this pattern. "/\{link\:(.*)\}(.*)\{\/link\}\s/" rest of the code looks fine. You can also have a look at the comments below preg-replace Description at www.php.net. There is a lot of usefull informations how to use it, http://uk2.php.net/manual/en/function.preg-replace.php |
|
|||
|
"Ac1d^" <adam82s@gmail.com> wrote in message
news:1158054059.855759.172420@i42g2000cwa.googlegr oups.com... > gehegeradeaus@gmail.com napisal(a): >> Can someone help me to make a regular expression for this sort of >> replacement : >> >> text with {link:pagehref}a link{/link}. >> >> replace to -> >> >> text with <a href="pagehref">a link</a> >> >> I tried several things but nothing seems to work... e.g. >> >> $value=preg_replace("/\{link\:(.+?)\}(.+?)\{\/link\}/s","<a href=\"$1\" >> target=\"_blank\">$2</a>",$value); >> >> Thanks in advance! > > Try this pattern. > "/\{link\:(.*)\}(.*)\{\/link\}\s/" > rest of the code looks fine. The problem is that {link:(.*)} matches to the entire "{link:pagehref}a link{/link}", it reaches the last occurance of } untill stops. Instead of .* the pattern should be (^})* ie. match anything but }, then it should stop at the first } which closes the {link} pseudotag. something like: "/\{link\:((^})*)\}(^{*)\{\/link\}\s/" -- "Ohjelmoija on organismi joka muuttaa kofeiinia koodiksi" - lpk http://outolempi.net/ahdistus/ - Satunnaisesti päivittyvä nettisarjis spam@outolempi.net || Gedoon-S @ IRCnet || rot13(xvzzb@bhgbyrzcv.arg) |
|
|||
|
Kimmo Laine schreef: > "Ac1d^" <adam82s@gmail.com> wrote in message > news:1158054059.855759.172420@i42g2000cwa.googlegr oups.com... > > gehegeradeaus@gmail.com napisal(a): > >> Can someone help me to make a regular expression for this sort of > >> replacement : > >> > >> text with {link:pagehref}a link{/link}. > >> > >> replace to -> > >> > >> text with <a href="pagehref">a link</a> > >> > >> I tried several things but nothing seems to work... e.g. > >> > >> $value=preg_replace("/\{link\:(.+?)\}(.+?)\{\/link\}/s","<a href=\"$1\" > >> target=\"_blank\">$2</a>",$value); > >> > >> Thanks in advance! > > > > Try this pattern. > > "/\{link\:(.*)\}(.*)\{\/link\}\s/" > > rest of the code looks fine. > > > The problem is that {link:(.*)} matches to the entire "{link:pagehref}a > link{/link}", it reaches the last occurance of } untill stops. Instead of .* > the pattern should be (^})* ie. match anything but }, then it should stop at > the first } which closes the {link} pseudotag. > something like: > > "/\{link\:((^})*)\}(^{*)\{\/link\}\s/" > > > -- Unfortunately still nothing, I tried both of the solutions above... but the replacement doesn't work : http://cmdstud.khlim.be/~bbrughmans/tmp.phps and http://cmdstud.khlim.be/~bbrughmans/tmp.php |
|
|||
|
mutale82@gmail.com schreef: > gehegeradeaus@gmail.com wrote: > > Can someone help me to make a regular expression for this sort of > > replacement : > > > > text with {link:pagehref}a link{/link}. > > > > replace to -> > > > > text with <a href="pagehref">a link</a> > > > > I tried several things but nothing seems to work... e.g. > > > > $value=preg_replace("/\{link\:(.+?)\}(.+?)\{\/link\}/s","<a href=\"$1\" > > target=\"_blank\">$2</a>",$value); > > > > Thanks in advance! > > try to use str_replace() instead... > see it here: http://de.php.net/str_replace I don't think I can use str_replace in this case, because it is a dynamic tag. |
|
|||
|
<gehegeradeaus@gmail.com> wrote in message
news:1158060714.858365.181920@i3g2000cwc.googlegro ups.com... > > Kimmo Laine schreef: > >> "Ac1d^" <adam82s@gmail.com> wrote in message >> news:1158054059.855759.172420@i42g2000cwa.googlegr oups.com... >> > gehegeradeaus@gmail.com napisal(a): >> >> Can someone help me to make a regular expression for this sort of >> >> replacement : >> >> >> >> text with {link:pagehref}a link{/link}. >> >> >> >> replace to -> >> >> >> >> text with <a href="pagehref">a link</a> >> >> >> >> I tried several things but nothing seems to work... e.g. >> >> >> >> $value=preg_replace("/\{link\:(.+?)\}(.+?)\{\/link\}/s","<a >> >> href=\"$1\" >> >> target=\"_blank\">$2</a>",$value); >> >> >> >> Thanks in advance! >> > >> > Try this pattern. >> > "/\{link\:(.*)\}(.*)\{\/link\}\s/" >> > rest of the code looks fine. >> >> >> The problem is that {link:(.*)} matches to the entire "{link:pagehref}a >> link{/link}", it reaches the last occurance of } untill stops. Instead of >> .* >> the pattern should be (^})* ie. match anything but }, then it should stop >> at >> the first } which closes the {link} pseudotag. >> something like: >> >> "/\{link\:((^})*)\}(^{*)\{\/link\}\s/" >> >> >> -- > > Unfortunately still nothing, I tried both of the solutions above... but > the replacement doesn't work I tried this with preg_match: /{link:([^}]*)}([^{]*){\/link}/ result: Array ( [0] => {link:pagehref}a link{/link} [1] => pagehref [2] => a link ) That should do it... modify it to suit your needs -- "Ohjelmoija on organismi joka muuttaa kofeiinia koodiksi" - lpk http://outolempi.net/ahdistus/ - Satunnaisesti päivittyvä nettisarjis spam@outolempi.net || Gedoon-S @ IRCnet || rot13(xvzzb@bhgbyrzcv.arg) |
|
|||
|
Kimmo Laine schreef: > <gehegeradeaus@gmail.com> wrote in message > news:1158060714.858365.181920@i3g2000cwc.googlegro ups.com... > > > > Kimmo Laine schreef: > > > >> "Ac1d^" <adam82s@gmail.com> wrote in message > >> news:1158054059.855759.172420@i42g2000cwa.googlegr oups.com... > >> > gehegeradeaus@gmail.com napisal(a): > >> >> Can someone help me to make a regular expression for this sort of > >> >> replacement : > >> >> > >> >> text with {link:pagehref}a link{/link}. > >> >> > >> >> replace to -> > >> >> > >> >> text with <a href="pagehref">a link</a> > >> >> > >> >> I tried several things but nothing seems to work... e.g. > >> >> > >> >> $value=preg_replace("/\{link\:(.+?)\}(.+?)\{\/link\}/s","<a > >> >> href=\"$1\" > >> >> target=\"_blank\">$2</a>",$value); > >> >> > >> >> Thanks in advance! > >> > > >> > Try this pattern. > >> > "/\{link\:(.*)\}(.*)\{\/link\}\s/" > >> > rest of the code looks fine. > >> > >> > >> The problem is that {link:(.*)} matches to the entire "{link:pagehref}a > >> link{/link}", it reaches the last occurance of } untill stops. Instead of > >> .* > >> the pattern should be (^})* ie. match anything but }, then it should stop > >> at > >> the first } which closes the {link} pseudotag. > >> something like: > >> > >> "/\{link\:((^})*)\}(^{*)\{\/link\}\s/" > >> > >> > >> -- > > > > Unfortunately still nothing, I tried both of the solutions above... but > > the replacement doesn't work > > I tried this with preg_match: > > /{link:([^}]*)}([^{]*){\/link}/ > > result: > Array ( > [0] => {link:pagehref}a link{/link} > [1] => pagehref > [2] => a link > ) > > That should do it... modify it to suit your needs > > -- thanks, it does work now :) |