|
Posted by Yannick Mortier on 11/01/05 00:40
Richard Heyes schrieb:
> Yannick Mortier wrote:
>
>> Hello,
>>
>> I have the string:
>>
>> <tr><td><img src="http://www.runescape.com/img/hiscores/attack.gif"
>> valign="bottom" width=16 height=16 /></td><td> </td><td><a
>> href="hiscoreuser.cgi?username=zezima&category=1"
>> class=c>Attack</a></td><td align="right">4</td><td
>> align="right">99</td><td align="right">53,156,556</td></tr>
>>
>>
>> and I apply preg_match_all:
>>
>> preg_match_all("/(<tr><td><img
>> src=\"http:\/\/www.runescape.com\/img\/hiscores\/attack.gif\"
>> valign=\"bottom\" width=16 height=16 \/><\/td><td> <\/td><td><a
>> href=\"hiscoreuser.cgi\?username=)([\w])+(&category=1\"
>> class=c>Attack<\/a><\/td><td align=\"right\">)([1-9])+(<\/td><td
>> align=\"right\">)([1-9])+(<\/td><td
>> align=\"right\">)([1-9,])+(<\/td><\/tr>)/",$seite,$attack);
>
>
> ...
>
>> But I would expect to get
>> [2] => Array
>> (
>> [0] => zezima
>> )
>> [6] => Array
>> (
>> [0] => 99
>> )
>> [8] => Array
>> (
>> [0] => 53,156,556 )
>>
>> Instead of the values above.
>>
>> Can you explain me how I can get those values?
>
>
> Try something like:
>
> preg_match_all('#username=([^&]+).+<td align="right">\d+</td><td
> align="right">(\d+)</td><td align="right">([\d, ]+)</td>#i', $seite,
> $matches);
>
> print_r($matches);
>
> Not tested - might need tweaking.
>
Now it works! I still use mine, but i put the + directly after the
closing bracket:
([\d]+) instead of ([\d])+
Thanks a lot for your help! I looked at your reg exp and saw this.
Yannick Mortier
Navigation:
[Reply to this message]
|