/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste