regex string nimmt zuviel auf

danza

Erfahrenes Mitglied
Hi,

ich versuche jetzt schon seit längeren diesen Code per Regex und PHP aufzuteilen:

HTML:
<div id="12" style="display:none" border="0"><center><img src='images/zones/elwynn.gif' /></center> <img src="images/map-pin-yellow.gif" style="position: absolute; left: 351.762749054px; top: 227.586337813px;" alt="Abudun" onmouseover="Tip('<div><b>Abudun</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 393.523130345px; top: 227.958754787px;" alt="Evilassasin" onmouseover="Tip('<div><b>Evilassasin</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 280.231672227px; top: 425.491242694px;" alt="Mixery" onmouseover="Tip('<div><b>Mixery</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 296.276972003px; top: 395.458022989px;" alt="Nora" onmouseover="Tip('<div><b>Nora</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 279.718129838px; top: 425.234548508px;" alt="Quickey" onmouseover="Tip('<div><b>Quickey</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 621.183114747px; top: 353.875668986px;" alt="Wisperwind" onmouseover="Tip('<div><b>Wisperwind</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /></div>

mit folgenden Regex:
PHP:
$data = 'siehe oben';
preg_match_all("%<img src=\"images/map-pin-yellow.gif\" style=\"position: absolute; left: ([0-9.]*)px; top: ([0-9.]*)px;\" alt=\"(.*?)\" onmouseover=\"Tip\('<div><b>(.*?)</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left'\)\" onmouseout=\"UnTip\(\)\" />%iUs", $data, $map_userdaten);
print_r($map_userdaten);

Folgende Ausgabe geschieht:
Code:
Array
(
    [0] => Array
        (
            [0] => <img src="images/map-pin-yellow.gif" style="position: absolute; left: 348.796224519px; top: 200.925911381px;" alt="Abudun" onmouseover="Tip('<div><b>Abudun</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 254.386886987px; top: 197.256446959px;" alt="Braunbär" onmouseover="Tip('<div><b>Braunbär</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 408.933830923px; top: 241.271083572px;" alt="Evilassasin" onmouseover="Tip('<div><b>Evilassasin</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 423.135228807px; top: 137.19421565px;" alt="Gloì" onmouseover="Tip('<div><b>Gloì</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 303.655194735px; top: 403.455519703px;" alt="Mixery" onmouseover="Tip('<div><b>Mixery</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 279.576826593px; top: 412.875354691px;" alt="Nora" onmouseover="Tip('<div><b>Nora</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 253.958548345px; top: 367.987537037px;" alt="Palalady" onmouseover="Tip('<div><b>Palalady</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 304.875506428px; top: 406.232866628px;" alt="Quickey" onmouseover="Tip('<div><b>Quickey</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 621.183114747px; top: 353.875668986px;" alt="Wisperwind" onmouseover="Tip('<div><b>Wisperwind</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" />
        )

    [1] => Array
        (
            [0] => 348.796224519
        )

    [2] => Array
        (
            [0] => 200.925911381
        )

    [3] => Array
        (
            [0] => Abudun" onmouseover="Tip('<div><b>Abudun</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 254.386886987px; top: 197.256446959px;" alt="Braunbär" onmouseover="Tip('<div><b>Braunbär</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 408.933830923px; top: 241.271083572px;" alt="Evilassasin" onmouseover="Tip('<div><b>Evilassasin</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 423.135228807px; top: 137.19421565px;" alt="Gloì" onmouseover="Tip('<div><b>Gloì</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 303.655194735px; top: 403.455519703px;" alt="Mixery" onmouseover="Tip('<div><b>Mixery</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 279.576826593px; top: 412.875354691px;" alt="Nora" onmouseover="Tip('<div><b>Nora</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 253.958548345px; top: 367.987537037px;" alt="Palalady" onmouseover="Tip('<div><b>Palalady</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 304.875506428px; top: 406.232866628px;" alt="Quickey" onmouseover="Tip('<div><b>Quickey</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left')" onmouseout="UnTip()" /><img src="images/map-pin-yellow.gif" style="position: absolute; left: 621.183114747px; top: 353.875668986px;" alt="Wisperwind
        )

    [4] => Array
        (
            [0] => Wisperwind
        )

)

Als Ausgabe möchte ich eigentlich das nur die Koordinaten(nur die zahlen!) erhalten:
left: 393.523130345px; top: 227.958754787px

Das eigentliche Problem besteht dadrin, dass die Koordinaten nur einmal gefundne werden eigtl. müssten die doch Mehrfach gefunden werden? Wo steckt da der Fehler?

MFG
danza
 
Code:
%<img src=\"images/map-pin-yellow.gif\" style=\"position: absolute; left: ([0-9.]+)px; top: ([0-9.]+)px;\" alt=\"[^"]*\" onmouseover=\"Tip\('<div><b>[^<]*</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left'\)\" onmouseout=\"UnTip\(\)\" />%iUs
 
mhh Irgendwie sagt mein PHP parser nen Error bei dem Regex:
Code:
Parse error: syntax error, unexpected ']' in /www/htdocs/w0097990/d4nza.de/root.d4nza.de/update.php on line 52
 
Hab notepad++ nur da sieht man das nicht richtig da der das als String hervorhebt.
 
Dann schau dir mal die Stelle, an der die Zeichenkette vorzeitig beendet wird, genauer an.
 
Hi,

Hab notepad++ nur da sieht man das nicht richtig da der das als String hervorhebt.

sieht man nur bei genauem Hinsehen. Beim alt-Attribut ist ein Anführungszeichen nicht maskiert.

PHP:
$pattern = "%<img src=\"images/map-pin-yellow.gif\" style=\"position: absolute; left: ([0-9.]+)px; top: ([0-9.]+)px;\" alt=\"[^\"]*\" onmouseover=\"Tip\('<div><b>[^<]*</b></div>',BGCOLOR,'#000',BORDERSTYLE,'solid',BORDERCOLOR,'#F0D070',FONTCOLOR,'#d4d4d4',FONTSIZE,'11px',JUMPHORZ,true,JUMPVERT,true,PADDING,15,TEXTALIGN,'left'\)\" onmouseout=\"UnTip\(\)\" />%iUs";

LG
 
Oh man bin ich blöd das hätte ich auch selber sehen können ich hatter erst das " gelöscht dabei musste das escapet werden -.-
Aber danke nochmal ihr zwei ;)
 
Zurück