Ankündigung

Einklappen
Keine Ankündigung bisher.

In welcher Zeile steht mein gesuchtes Wort?

Einklappen

Neue Werbung 2019

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

  • In welcher Zeile steht mein gesuchtes Wort?

    Folgendes Beispiel:
    Ich habe eine Datei mit ganz viel Text der ungefähr so aufgebaut ist.

    Blabla Hans blabla
    <br>
    Blabla Peter blabla
    <br>
    Blabla Klaus blabla
    <br> ...

    Ich möchte jetzt wissen, in welcher Zeile das Wort Klaus steht.
    Als Antwort reicht ein "in Zeile 3"

    Ich hab an eine Schleife gedacht, die unfegähr so aufgebaut ist:
    $suchwort = "Klaus";
    $trennwort = "<br>";
    $i = 1;

    suche nach $suchwort, bis $trennwort gefunden wird.
    wenn suchwort vor trennwort gefunden
    dann schreibe "gefunden in Zeile 1" und beende script.

    ansonsten suche bis zum nächsten trennwort.
    wenn wieder kein suchwort gefunden, dann erhöhe $i um 1 und suche weiter. Ansonsten schreibe "gefunden in Zeile 2" und beende script.

    Das wiederholt sich so lange bis das Suchwort gefunden wurde. Wird es im ganzen Text nicht gefunden, dann kommt die Meldung "nicht gefunden"

    Ich hab jedoch keine Ahnung wie ich in einer schleife eine "Suche bis Anweisung" hinterlegen kann.
    Kann mir jemand einen Denkanstoß geben, wie ich das auf die Reihe bekommen könnte? Bin für jede Hilfe dankbar!

  • #2
    Wenn die Zeilen in der Datei durch einen Zeilenumbruch wie \n getrennt sind, kannst du die Datei mit [MAN]file[/MAN] in ein Array einlesen. Jede Zeile entspricht dann einem Eintrag im Array und du kannst es mit einer Schleife durchsuchen. Der Schleifendurchlauf entspricht dann gleichzeitig der Zeilennummer.
    [URL]http://hallophp.de[/URL]

    Kommentar


    • #3
      Das mit den <br> war nur ein Beispiel, sie werden in meinem Fall mit <div style="blabla";> getrennt.
      Wobei ich dann natürlich mit suchen/ersetzen aus den divs Zeilenumbrüche machen könnte und dann auf deine Weise auslesen.
      Eine andere Lösung wäre mir da aber lieber, weil ich den langen Text irgendwann in einer DB haben will und nicht in einer Datei.
      Aber danke schon mal.

      Kommentar


      • #4
        Reguläre Ausdrücke und [MAN]preg_match[/MAN] oder [MAN]preg_match_all[/MAN].
        [URL]http://hallophp.de[/URL]

        Kommentar


        • #5
          Ich kenne deine Datenbank/Datenstruktur zwar nicht, aber wenn dir das ganze als Text vorliegt könntest du vielleicht ein csv draus basteln (immer die <br> durch Kommas ersetzen) und dann in eine DB importieren? Wenn das nicht hinhaut, lass uns doch mal wissen wie genau dein Datenmodell aussieht
          Programmierung und SEO Blog

          Kommentar


          • #6
            OK, ich beschreibe mal um was es sich genau handelt.

            ich suche z.B. bei Google nach einem bestimmen Suchbegriff und will abfragen, auf welchem Platz meine Firma auftaucht. Das ganze soll ein Mal täglich automatisch durchgeführt werden, damit ich sehen kann, wie sich mein Ranking, abhängig von meinen Optimierungen auswirkt.

            begonnen wird mit:
            $quelltext = file_get_contents("http://www.google.de/search?q=Suchbegriff");

            Somit habe ich schon mal den kompletten Quellcode der Ergebnisseite in einer Variable.

            Auf der Ergebnisseite habe ich jetzt z.B. 10 Ergebnisse, jedes davon enthält genau 1x den Code "</span></span></div>"

            Ich möchte jetzt folgendes suchen:
            Suche nach meinem Firmennamen bis "</span></span></div>" gefunden wird.
            Wenn gefunden, dann schreibe "Auf Platz 1"

            Wenn nicht, dann suche meinen Firmannamen bis zum zweiten "</span></span></div>"
            Wenn gefunden, dann schreibe "Auf Platz 2"

            Und so weiter, bis alle 10 Ergebnisse durchsucht wurden.
            Wenn mein Firmenname nicht gefunden wird, dann steht eben "nicht in den Suchergebnissen gelistet"

            Danach wird das als cronjob hinterlegt, täglich 1x durchgeführt und der Platz inkl. Datum in einer Datenbank gespeichert.

            Das mit den "</span></span></div>" ist jetzt nur ein Beispiel, aber ich hoffe, ihr wisst wie ich das meine und wie das funktionieren soll
            Vielen, vielen Dank

            Kommentar


            • #7
              Vielen Dank, ich habs hinbekommen.
              Mit explode werden die einzelnen ergebnisse in ein array gelesen und mit strpos wird dort nach meinem Suchwort gesucht.

              Kommentar

              Lädt...
              X