_StringBetween()... aber wie?

  • Ich möchte per INetGetSource() den Quelltext einer Website holen (funktioniert)
    und daraus bestimmte Sachen filtern.

    Jetzt ist einmal das Problem, dass ich nicht weiß wie ich mit _StringBetween($source, "", "") arbeiten soll,
    wenn im Quelltext - und das ist ja üblich - Anführungszeichen " vorkommen.
    Die Anführungszeichen in der Funktion mit einfachen ' zu ersetzen gibt leider auch eine Fehlermeldung aus.

    Das andere Problem ist, dass sich Teile des Quelltextes wiederholen, sodass ich sozusagen keinen "unique" Quellext mehr habe... somit weiß ich nicht wie ich dann filtern soll.

    Hier mal die Tabelle aus dem Quelltext, um die es geht (die Sachen, die in den <td>-Tags stehen, sind je nach Account immer anders.

    Ich möchte alle Stats gerne herausfiltern...

    und hoffe, dass mir jemand etwas Hilfe leisten kann =)

    MfG

    Einmal editiert, zuletzt von pete_gzome (18. März 2010 um 21:02)

  • [autoit]

    $sBetween = _StringBetween($Source, '"rankingRow">', ''

    [/autoit]


    Das schreibt schonmal alles in das Array $sBetween. Jetzt musst du nur noch wissen an welcher Stelle was ist und das geht mit

    [autoit]

    _ArrayDisplay($sBetween)

    [/autoit]


    Jetzt kannst du was auch immer du willst machen. Um die Einträge einzelnd abzurufen brauchst du $sBetween[$i].
    Wobei $i dem Wert entsprechen sollte, den du bei _ArrayDisplay() willst. In deinem Beispiel wäre $sBetween[1] = 150, $sBetween[2] = 133 und $sBetween[3] = 53.00 %.
    Hab das jetzt nicht getestet, aber es müsste stimmen.
    Hoffe du verstehst es, wie ich es erklärt habe :D

    • Offizieller Beitrag
    Zitat

    Jetzt ist einmal das Problem, dass ich nicht weiß wie ich mit _StringBetween($source, "", "") arbeiten soll,

    Einfach die Einschließenden " in ' umändern.

    [autoit]

    _StringBetween($source,'irgendwas" ','irgendwie" ')

    [/autoit]

    Ups, hab mal wieder gepennt.

  • [autoit]

    $sBetween = _StringBetween($Source, '"rankingRow">', ''

    [/autoit]


    Das schreibt schonmal alles in das Array $sBetween. Jetzt musst du nur noch wissen an welcher Stelle was ist und das geht mit

    [autoit]

    _ArrayDisplay($sBetween)

    [/autoit]


    Jetzt kannst du was auch immer du willst machen. Um die Einträge einzelnd abzurufen brauchst du $sBetween[$i].
    Wobei $i dem Wert entsprechen sollte, den du bei _ArrayDisplay() willst. In deinem Beispiel wäre $sBetween[1] = 150, $sBetween[2] = 133 und $sBetween[3] = 53.00 %.
    Hab das jetzt nicht getestet, aber es müsste stimmen.
    Hoffe du verstehst es, wie ich es erklärt habe :D

    Hey, wow, das funktioniert!

    Musste nur

    [autoit]

    $sBetween = _StringBetween($Source, '"rankingRow">', ''

    [/autoit]


    in

    [autoit]

    $sBetween = _StringBetween($Source, '"rankingRow">', '</td>')

    [/autoit]


    ändern.

    Vielen Dank =))