getbetween rückwärts

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • getbetween rückwärts

    Hallo,
    zurzeit bin ich noch dabei PHP zu lernen und brauche deshalb eure Hilfe!
    Zurzeit Programmiere ich einen Bot für ein Chatsystem.
    Dies ist einer der commands vom Bot:
    PHP-Code:
                            case '!test':
                                
    $target $info[1];
                                
    $res $this->get('http://test/'.$info[1]);
                                 
    $msg=$this->getBetween($res'<div>''</div>');
                                    
    $this->sendMessage("$msg");
                                   break; 
    Jetzt ist mein Problem, dass ich auf einer anderen Webseite auch getBetween benutzen will. Dabei soll getBetween rückwärts suchen und nicht vorwärts.
    Gibt es dafür einen Weg oder Funktion?

    MFG Codam

  • #2
    Hallo,

    getBetween() ist eine Methode irgendeiner Klasse. Wenn es eine in PHP eingebaute Klasse ist, solltest du deren Namen dazuschreiben, damit wir das zuordnen können.

    Ich vermute aber, dass es irgendeine Drittanbieterklasse ist. In diesem Falle solltest du dich zuerst an diesen wenden, da uns diese Klasse nicht zur Verfügung steht und wir dadurch auch keine Auskünfte geben können.

    Du kannst aber trotzdem gerne erzählen, was diese von dir gesuchte getBetween-rückwärts-Funktion leisten soll, vielleicht hat ja trotzdem jemand eine Idee, wie man das umsetzen könnte.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      verdeutlichte frage!

      ich glaube ich hab es etwas falsch erklärt!

      also ich will getbetween für folgendes scipt von einer webseite verwenden:

      HTML-Code:
      <strong> 1 – testa</strong><br />
      <strong> 2 – testb</strong><br />
      <strong> 3 – testc</strong><br />
      <strong> 4 – testd</strong><br />
      <strong> 5 – teste</strong><br />
      <strong> 6 – testf</strong><br />
      <strong> 7 – testg</strong><br />
      <strong> 8 – testh</strong><br />
      <strong> 9 – testi</strong><br />
      ich möchte jetzt wenn für info[1] = testb angegeben wird als Antwort die nr. 2 rauskommt! Dabei ist das Problem wenn es jetzt z.B.
      PHP-Code:
      $msg=$this->getBetween($res, <strong>', '&#8211; info[1]</strong>'); 
      Dabei schreibt er dann schon vom ersten <strong> und nicht das <strong> was vor der gesuchten NR. steht!
      Deshalb ist meine frage gibt es eine getBetween function welche von hinten nach vorne sucht!

      Kommentar


      • #4
        Weiß nicht, ob ich es verstanden habe, aber die verrückte Variante wäre:

        PHP-Code:
        $msg strrev($this->getBetween(strrev($res), strrev('– testh'), strrev('<strong>'))); 
        Etwas weniger verrückt:

        PHP-Code:
        $res = <<<EOT
        <strong> 1 – testa</strong><br />
        <strong> 2 – testb</strong><br />
        <strong> 3 – testc</strong><br />
        <strong> 4 – testd</strong><br />
        <strong> 5 – teste</strong><br />
        <strong> 6 – testf</strong><br />
        <strong> 7 – testg</strong><br />
        <strong> 8 – testh</strong><br />
        <strong> 9 – testi</strong><br />
        EOT;

        $matches = array();
        preg_match('/<strong>([^<]*)– testh/u'$res$matches);
        $msg trim($matches[1]);
        var_dump($msg); 
        Dazu solltest du aber wissen, was ein Zeichensatz ist.

        - The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) - Joel on Software

        Sauber wäre es, dir die Zuordnungen mit einem echten HTML-Parser (etwa DOMDocument) auszulesen.

        Aber im Grunde ist deine Vorgehensweise insgesamt unsinnig, denn für so was nutzt man vereinbarte Schnittstellen und sucht nicht im HTML-Code rum.

        Kommentar

        Lädt...
        X