Avatar billede rzj Nybegynder
23. september 2003 - 21:45 Der er 7 kommentarer og
1 løsning

mere regular ekspression

nu så jeg lige at nogle var hurtige med et regular ekspression, der henter det matchede ind i et array:

Kan I så lige klare denne her:

jeg ønsker at finde href="hvad som helst"

$foo = "<p><...><a href="www.eksperten.dk">eks</a><a href="?pageID=01" target="_blank">læs mere</a><...></p>

ovenstående er bare et eksempel I kan lege med. Den væsentligste pointe er at det regulære udtryk skal finde href="..." og lægge det ind i et array. Ovenstående bliver nemlig derefter parset og derved erstates alle href="..." med href="/".
Jeg skal derfor bruge array med parse resultat til at genetablere alle href="/".

Det er kryptisk, og I vil ikke vide hvorfor, men sådan er det bare....
/raz
Avatar billede erikjacobsen Ekspert
23. september 2003 - 21:46 #1
Skal du bare erstatte href="...." med href="/" ? ellers forstår jeg ikke helt.
Avatar billede rzj Nybegynder
23. september 2003 - 21:49 #2
jeg forstår godt at du ikke fatter det !

her:
1. først skal $foo parses af et regulært udtryk der lægger alle href="..." ind i et array.
2. Oprindelig $foo parses dernæst igennem Online Tidy, der desværre erstatter alle href="...." med href="/".
3. Dernæst genetableres alle href="..." ved at erstatte href="/" med indholdet af array fra pkt. 1

Håber det var mere opklarende....
/raz
Avatar billede erikjacobsen Ekspert
23. september 2003 - 21:51 #3
Ouch, så alle href="/"-erne er bagefter ens, og skal erstattes i samme
rækkefølge som de var før? Joh, det kan man godt... Der er lige noget andet
jeg skal først ;)
Avatar billede rzj Nybegynder
23. september 2003 - 21:58 #4
jeg tror jeg har styr på erstatningen - altså pkt. 3, men det regulære udtryk til at finde alle href="..."-erne er jeg ikke så stærk i.

Læg mærke til at jeg anvende ... når jeg mener at værdien er varierende !
Avatar billede erikjacobsen Ekspert
23. september 2003 - 22:11 #5
Så'n?

$foo = '<p><...><a href="www.eksperten.dk">eks</a>'."\n".'<a href="?pageID=01" target="_blank">læs mere</a><...></p>';

preg_match_all('/href="([^"]*)"/im',$foo,$r);

print_r($r);

$foo = '<p><...><a href="/">eks</a>'."\n".'<a href="/" target="_blank">læs mere</a><...></p>';

$i=0;
$foo=preg_replace('/href="[^"]*"/ime',"'href=\"'.\$r[1][\$i++].'\"'",$foo);

print $foo;
Avatar billede erikjacobsen Ekspert
23. september 2003 - 22:12 #6
Den nederste kan også være
$foo=preg_replace('/href="\/"/ime',"'href=\"'.\$r[1][\$i++].'\"'",$foo);
Avatar billede rzj Nybegynder
23. september 2003 - 23:04 #7
jepper det virker !
smid et svar
Avatar billede erikjacobsen Ekspert
23. september 2003 - 23:05 #8
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester