Reg exp hjælp

Tags:    php

Jeg har lidt HTML kode:
<html><head><title>Test</title></head><body>
<a href='redirect.php?link=1'>1</a>
<a href='redirect.php?link=2'>2</a>
<a href='redirect.php?link=3'>3</a>
<a href='redirect.php?link=4'>4</a>
<a href='redirect.php?link=5'>5</a>
<a href='redirect.php?link=6'>6</a>
<a href='redirect.php?link=7'>7</a>
</body></html>

Nu skal jeg have 'href' på alle linksne (redirect.php?link=1) osv, dog kun hvis det er et link med redirect.php?link= i starten...

Jeg har leget lidt med noget regexp og er kommet frem til følgende: /(?:<a\\\\s+href='\\")(redirect.php?link=(.*)+)(?:\\">;)/

Er det rigtigt at jeg bruger preg_match_all ?



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Fold kodeboks ind/udKode 


$regs[1] indeholder så:

Array
(
[0] => url.her
[1] => google.dk
)

du kan så løbe dem igennem med en foreach




Hilsen

Martin Dybdal (Dybber)



<?php
$kilde = "<html><head><title>Test</title></head><body>
<a href='redirect.php?link=1'>1</a>
<a href='redirect.php?link=2'>2</a>
<a href='redirect.php?link=3'>3</a>
<a href='redirect.php?link=hey.dk'>4</a>
<a href='redirect.php?link=5'>5</a>
<a href='redirect.php?link=6'>6</a>
<a href='redirect.php?link=7'>7</a>
</body></html> ";


preg_match_all("#<a\\s+href='redirect.php\\?link=([^\\"]+)'>#si",
$kilde,
$out);

echo "<pre>"; print_r($out[1]); echo "</pre>";

echo "<hr>";
show_source(__FILE__);
?>

[Redigeret d. 28/01-05 20:49:08 af Philip Dahlstrøm]



t