|
| preg_replace Fra : Jesper \"G\" Jensen |
Dato : 04-07-02 09:52 |
|
Hejsa,
jeg forsøger at søge og erstatte i en streng med html-indhold...
Det jeg gerne ville var at erstatte første forekomst af <Main>(.*)</Main>
med $1$0 (det imellem tag'et + hele scopet).
Dernæst vil jeg erstatte første forekomst af <Sub>(.*)</Sub> med $1$0 (igen
det imellem tag'et + hele scopet)
$html =
"<Main>\n".
" test1\n".
" <Sub>\n".
" test2\n".
" </Sub>\n".
" test3\n".
"</Main>";
$html = preg_replace("/<Main>(.*)<\/Main>/sm","$1\n$0",$html,1);
$html = preg_replace("/<Sub>(.*)<\/Sub>/sm","$1",$html,1);
echo $html."\n";
ovenstående outputter:
test1
test2
</Sub>
test3
<Main>
test1
<Sub>
test2
test3
</Main>
Jeg forstår ikke lige hvad det er der sker, så <Sub> og </Sub> tag'ene
bliver ombyttet...
Jeg skal have det hele bygget ind i en iteration, hvor jeg får flere
<Main></Main> afsnit med varierende antal <Sub></Sub> afsnit i hver af
disse.
Hvis det har nogen betydning så kører jeg PHP 4.1.2.
Jeg håber der er en, der lige kan lede mig på rette spor.
På forhånd tak!
Jesper Jensen
| |
Thomas L. Kjeldsen (09-07-2002)
| Kommentar Fra : Thomas L. Kjeldsen |
Dato : 09-07-02 00:06 |
|
Jesper "G" Jensen wrote:
> Dernæst vil jeg erstatte første forekomst af <Sub>(.*)</Sub> med $1$0
> (igen det imellem tag'et + hele scopet)
[snip]
> $html = preg_replace("/<Sub>(.*)<\/Sub>/sm","$1",$html,1);
Ovenstående matcher det _første_ start tag og det _sidste_ slut tag.
vh Thomas
| |
|
|