wieder mal RegEx ....

ludz

Erfahrenes Mitglied
Hi, ich will 2 Zahlen aus einer Seite auslesen und bräuchte mal Hilfe bei den RegEx:
PHP:
//Die Seite, die ich auslesen will
$url="http://www.veltins-vplus.de/Content/clubtour/ranking.php?Design=1";

//So sieht der String der Seite aus
$string="<tr><td><img src='images/spacer.gif' width='1' height='22'></td>
<td align='right'>&nbsp;<b><font size='2' face='Arial, Helvetica, sans-serif' color='#FFFFFF'>10&nbsp;&nbsp;</font></b></td>
<td align='left'><b><font size='2' face='Arial, Helvetica, sans-serif' color='#FFFFFF'>
<a href='Javascript:Pop(1006)'>Spaß ist, was du draus machst!</a>
&nbsp;</font></b></td>
<td valign='center' align='right'>&nbsp;1.6 %&nbsp;&nbsp;</td>
<td valign='center' align='left' width='120'><img src='images/ranking_skala_1.gif' height='14' width='16' alt='1.6%'></td></tr>";

//Mein Pattern
$pattern="|<tr><td><img [^>]*></td><td [^>]*>&nbsp;<b><font [^>]*>[0-9]*&nbsp;&nbsp;</font></b></td>
<td [^>]*><b><font [^>]*><a href='Javascript:Pop(1006)'>Spaß ist, was du draus machst!</a>&nbsp;</font></b></td>
<td [^>]*>&nbsp;(.*) %&nbsp;&nbsp;</td><td [^>]*><img [^>]*></td></tr>|siU";

$seite=file($url);
$seite=implode("",$seite);
$seite=trim($seite);


preg_match_all($pattern,$seite,$matches,PREG_SET_ORDER);
$platz=$matches[0];
$prozent=$matches[1];
//for($i=0;$i<count($matches);$i++) {
//	echo $matches[$i];
//}

echo $platz.'<br />';
echo $prozent.'<br />';

Irgendwie scheint er nichts zu finden. Er gibt auf jeden Fall nichts aus :(
Könnte mir da jmd. helfen?! Was stimmt denn an dem Code oder dem Pattern nicht?!
 
Das problem scheint sich heute im Chat gelöst zu haben.

Es mussten nur "/" und Klammern escaped werden:
Code:
<?php
preg_match(  "/([0-9]*)&nbsp;&nbsp;<\/font><\/b><\/td><td align='left'><b>"
            ."<font size='2' face='Arial, Helvetica, sans-serif' color='#FFFFFF'>"
            ."<a href='Javascript:Pop\(1006\)'>Spaß ist, was du draus machst!<\/a>&nbsp;<\/font>"
            ."<\/b><\/td><td valign='center' align='right'>&nbsp;([0-9]*).([0-9]*) %&nbsp;&nbsp;/i"
           , $sData, $aResult);

print_r($aResult);

?>
 
Zuletzt bearbeitet von einem Moderator:
Zurück