Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Suchwort und passender Link

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Suchwort und passender Link

    Hallo,

    ich habe hier einen ganzen Ordner voll Textdateien von einem defekten System. Ich suche nun folgende Möglichkeit, den Text einzulesen und nach einem bestimmten Wort zu suchen. Das klappt natürlich bereits über preg_match.

    Jetzt aber das folgende Problem da die Textdatei einmal html waren steht dort der Link natürlich in html Form auch drin. Wie kann ich jetzt, den Link vor dem Suchwort per preg_match mit anzeigen oder gar einzeln in ein array speichern?

    Ich bin mit regulären Ausdrücken leider auf Kriegsfuß, ich bekomme die einfach nicht in meinen Kopf...

    Danke!


  • #2
    Zitat von slsb02 Beitrag anzeigen
    Hallo,

    ich habe hier einen ganzen Ordner voll Textdateien von einem defekten System. Ich suche nun folgende Möglichkeit, den Text einzulesen und nach einem bestimmten Wort zu suchen. Das klappt natürlich bereits über preg_match.

    Jetzt aber das folgende Problem da die Textdatei einmal html waren steht dort der Link natürlich in html Form auch drin. Wie kann ich jetzt, den Link vor dem Suchwort per preg_match mit anzeigen oder gar einzeln in ein array speichern?

    Ich bin mit regulären Ausdrücken leider auf Kriegsfuß, ich bekomme die einfach nicht in meinen Kopf...

    Danke!
    Der Link vor dem Suchwort?
    Du meinst das was zwischen den Link Tags steht?
    Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

    Kommentar


    • #3
      Ja, so meine ich das... Als Beispiel habe ich:

      <a href="domain.de/SuchwortErgebnis.html">Suchwort</a>

      Suchwort finde ich ja. Und ich brauche jetzt im Prinzip noch "href" vor dem Suchwort.

      Danke!

      Kommentar


      • #4
        Zitat von slsb02 Beitrag anzeigen
        Ja, so meine ich das... Als Beispiel habe ich:

        <a href="domain.de/SuchwortErgebnis.html">Suchwort</a>

        Suchwort finde ich ja. Und ich brauche jetzt im Prinzip noch "href" vor dem Suchwort.

        Danke!
        Hilft dir möglicherweise das hier:
        preg_replace
        Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

        Kommentar


        • #5
          preg_replace kann mir bestimmt auch helfen... Aber irgendwie, fehlt mir gerade die Idee, wie ich es machen soll... Kann mir bitte mal jemand einen Gedank-Schubs geben, danke...

          Kommentar


          • #6
            Ich habe nicht verstanden was du machen willst :/ Hast du mal ein konkretes Beispiel? Wie du die Daten hast und wie das Ergebnis aussehen soll.
            Relax, you're doing fine.
            RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

            Kommentar


            • #7
              Also, ich habe Textdateien, mit ähnlichem Inhalt wie:

              PHP-Code:
              Das ist der Text um des es hier gehtIn diesem Text finden wir Suchwörter ganz nach BedarfDas Suchwort lautet <a href="url.de/Suchwort">Hausschuhe</aund dann geht es auch gleich weiter mit dem Text und wir finden vielleicht noch <a href="url.de/tiere">Katzen</ain unserem Text
              Ich suche nun nach Wörtern über ein Formular im Text. Das klappt alles auch. Nur brauche ich noch den Link dazu den es eventuell gibt.

              Jetzt verstanden ?

              Kommentar


              • #8
                Für Markup kannst du DOM benutzen... XPath Suche frei Haus.
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  Hallo,

                  es kann aber auch sein, dass es ein komplettes html Dokument ist. Denn dabei handelt es sich Backups die wärend der Erstellung gemacht wurden.
                  Und ich kann nicht sicher sagen, ob es reiner Text ist oder eben HTML... Da hilft mir doch dann xpath auch nicht weiter, oder?

                  Kommentar


                  • #10
                    Wie extrahierst du denn einen Link aus reinem Text?
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      PHP-Code:
                          '/<a[\w ="./\-\$%:§\'\{\}\[\]]+>Suchwort<\/a>/' 
                      Sowas in die Richtung? müsstest hinterher nur beigehen und aus dem was zurückkommt den Link extrahieren. Was in diesem fall kein Problem mehr darstellen sollte.
                      Zitat von derwunner
                      "Ein FISI ist auf gut-deutsch der Netzwerker. Das heißt Du gehst rauß zum Kunden oder auf die Straße und verlegst Leitungen" - derwunner 2015

                      Kommentar


                      • #12
                        Hallo CrocoBlack,

                        das sieht schon gut aus, zumindest ist für mich erkenntlich dass es auch nach einem Link sucht. Aber das Ergbnis ist leider leer. Es wird also nichts gefunden...
                        Ohne deinen Ausdruck wird alles gefunden. Habe gesehen, dass es auch links gibt, die ein class haben, kann das noch ein Problem sein?

                        Kommentar


                        • #13
                          Der Reguläre ausdruck den ich gepostet habe, sollte kein Problem damit haben, wenn auch Klassen noch definiert werden. Allerdings hat er Probleme mit Leerzeichen zwischen den Tags und dem Suchbegriff (falls eingerückt). Da müsste man sich dann mehr Mühe geben.
                          Zitat von derwunner
                          "Ein FISI ist auf gut-deutsch der Netzwerker. Das heißt Du gehst rauß zum Kunden oder auf die Straße und verlegst Leitungen" - derwunner 2015

                          Kommentar


                          • #14
                            Erstmal spielt es keine Rolle, ob das HTML wohlgeformt ist... muss es für DOMDocument nicht sein, daher funktionieren auch Fragmente (s.u.)

                            Und zum zweiten: Wenn du reinen Text hast, gibt es kein <a>, damit auch keinen Link zum auslesen.


                            PHP-Code:
                            error_reporting(-1); 
                            ini_set('display_errors'TRUE); 

                            echo 
                            'Vorgabe:'.PHP_EOL.PHP_EOL;
                            $html 'Testtext mit ein <a href="http://example.com/test1">Hyperlink</a> und sonst nur Text'.PHP_EOL.
                                    
                            'Und mehr Text mit einem <a href="http://example.com/test2">anderen Link</a> und sonst nur text'.PHP_EOL.
                                    
                            'noch mehr Text mit <a href="http://example.com/test3">Hyperlink</a> und so weiter'.PHP_EOL.PHP_EOL;
                            echo 
                            $html;

                            $doc = new DOMDocument();
                            $doc->loadHTML($html);

                            echo 
                            'Suche nach dem href aus <a> Tags mit dem Text "Hyperlink"'.PHP_EOL;
                            $xpath = new DOMXpath($doc);
                            $res $xpath->query("//a[text()='Hyperlink']/@href");

                            for(
                            $i 0$i $res->length$i++) {
                                
                            $child $res->item($i);
                                echo 
                            'Treffer '.($i+1).' : ' $child->textContent PHP_EOL;

                            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                            Kommentar


                            • #15
                              lstegelitz!!!

                              PERFEKT!!!

                              Vielen vielen Dank! Das ist genau das, was ich brauche und es funktioniert genauso, wie ich gehofft habe. Allerdings musste ich das error_reporting ausschalten da das einlesen Fehler verursacht hat. Die aber scheinbar auf fehlerhaftes HTML der Quelle zurück zu führen sind (denke ich).

                              Nochmals, DANKE!

                              Kommentar

                              Lädt...
                              X