Forum Moderators: coopster

Message Too Old, No Replies

PHP regular expression: match all anchors in a string

generate an array containing all anchors in a string

         

Paul Stefan Ort

3:42 pm on Oct 11, 2007 (gmt 0)

10+ Year Member



How can I do the following?

Copy all instances of:

<a name="my-anchor-name"></a>

into an array containing only the anchor names?

PHP_Chimp

4:51 pm on Oct 11, 2007 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member




<?php
$p = '%<a\s+name="(.*)"\s*>(?:.*)</a>%im';
$s = 'some rubbish
<a name="my-anchor-name1">name</a>more rubbish
more rubbish<a name="my-anchor-name2">name2</a>more rubbish
more rubbish<a name="my-anchor-name3">name3</a>more rubbish
more rubbish<a name="my-anchor-name4">name4</a>more rubbish
more rubbish<a name="my-anchor-name5">name5</a>more rubbish';
$t = preg_match_all($p, $s, $matches, PREG_SET_ORDER);
?>

Give you -


Array
(
[0] => Array
(
[0] => name
[1] => my-anchor-name1
)
[1] => Array
(
[0] => name2
[1] => my-anchor-name2
)
[2] => Array
(
[0] => name3
[1] => my-anchor-name3
)
[3] => Array
(
[0] => name4
[1] => my-anchor-name4
)
[4] => Array
(
[0] => name5
[1] => my-anchor-name5
)
)

Is that what you are after?