Ankündigung

Einklappen
Keine Ankündigung bisher.

Überschriften auslesen

Einklappen

Neue Werbung 2019

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

  • Überschriften auslesen

    Hi an alle,

    ich wollt mal fragen obs die Möglichkeit gibt zusagen jede h1 Überschrift also alles was zwischen "<h1>" und "</h1>" steht in ein Array zu speichern und auszugeben.?


  • #2
    Yop gibt es. Reguläre Ausdrücke. Schau die die preg_* Funktionen von PHP an.

    Kommentar


    • #3
      Oder mit nem DOMDocument und DOMXPath.

      Du musst nämlich bedenken, dass ein h1-Tag noch weitere Tags in sich tragen kann. Die würde ich dann auch entferenen und nur die Text-Nodes übriglassen:

      "<h1>Willkommen im <span style="color:#00f">PHP</span>-Forum</h1>"
      => "Willkommen im PHP-Forum"

      oder evtl sogar die alt-Attribute einbeziehen:
      "<h1><img src="banner.jpg" alt="Willkommen im PHP-Forum"></h1>"
      => "Willkommen im PHP-Forum"

      Kommentar


      • #4
        danke euch zwei, ich werd des mal beides durchlesen und schauen ob ichs hinbekomme^^

        Kommentar


        • #5
          ok ich habs jetzt mit mal preg_match_all gemacht
          PHP-Code:
          $in "<h1>Montag</h1>sadfsf<h1>Dienstag</h1>";
          preg_match_all("#<h1[^>]*>(.*?)</h1>#is"$in$treffer);

          echo 
          count($treffer)."<br>";
          echo 
          $treffer[0]."<br>";
          echo 
          $treffer[1]."<br>"
          Jetzt wird mir folgendes Ausgegeben:
          2
          Array
          Array

          Das heißt es wird aufjedenfall mal richtig erkannt das zwei Werte im Array stehn, nur warum gibt er mir jetzt Array als wert aus??
          Und noch ne frage wenn ich nicht irgendeine vordefinierte variable durchsuchen will sondern eine komplette seite, wie würde des dann ausschauen?

          Kommentar


          • #6
            Zitat von tjuk Beitrag anzeigen
            nur warum gibt er mir jetzt Array als wert aus??
            Vermutlich, weil es sich bei dem, was du per echo ausgeben lässt, um Arrays handelt ...?

            Schau dir mittels var_dump die Struktur von $treffer an, dann sollte es deutlich werden.

            Kommentar


            • #7
              ok hab des mit var_dump gemacht
              PHP-Code:
              array(2) { [0]=>  array(2) { [0]=>  string(15"
              Montag
              [1]=> string(17"
              Dienstag
              } [1]=> array(2) { [0]=> string(6"Montag" [1]=> string(8"Dienstag" } } 
              ich kann aber damit irgendwie nix anfangen xD bin noch net so wirklich fit in php was muss ich jetzt machen dass ich die richtigen werte rausbekomm?

              Kommentar


              • #8
                In den Browserquelltext sehen. Dann wirds deutlicher.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  naja klarer is es mir net geworden, aber ich hab jetzt davor ne foreach schleife gepackt
                  PHP-Code:
                  $in "<h1>Montag</h1>sadfsf<h1>Dienstag</h1>";

                  preg_match_all("#<h1[^>]*>(.*?)</h1>#is"$in$treffer);
                  foreach (
                  $treffer as $wert) {
                  }

                  echo 
                  count($wert);
                  echo 
                  $wert[0];
                  echo 
                  $wert[1]; 
                  jetzt werden aufjedenfall die werte richitg angezeigt, aber ob des jetzt ne gute lösung war weiß ich net

                  aber aufjedenfall kanns jetzt weiter gehn
                  ich will jetzt wie gesagt anstatt den wert von $in eine ganze seite durchsuchen, wie stell ich des an?

                  Kommentar


                  • #10
                    aber aufjedenfall kanns jetzt weiter gehn
                    Tu uns allen einen Gefallen und schaff Dir vorher ein paar Grundlagen drauf. Deine „Lösung“ mit foreach ist nämlich gruselig.
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar


                    • #11
                      [OT]
                      Das ist ja wirr, ist $wert außerhalb der foreach-Schleife noch definiert?
                      [/OT]

                      Kommentar


                      • #12
                        Wieso sollte es nicht? Kontrollstrukturen haben doch keinen eigenen Scope..
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar


                        • #13
                          Hmm, war da wohl etwas zu sehr in der Javawelt, da haben Kontrollstrukturen nämlich einen eigenen Scope.

                          Kommentar


                          • #14
                            Kann ich mir nicht vorstellen. Wäre ziemlich sinnfrei, wenn man Variablen von außen nicht nutzen könnte.
                            --

                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                            --

                            Kommentar


                            • #15
                              Finde ich durchaus sinnvoll, $wert ist hier ja nur eine Art "praktischer Zugriff" auf den Arrayinhalt solange man durchiteriert. Ähnliches in Java wäre denke ich:

                              Code:
                              public class Test {
                              
                              	public static void main(String[] args) {
                              		String[] test = new String[2];
                              		
                              		test[0] = "test";
                              		test[1] = "test2";
                              		
                              		for (String var : test)
                              		{
                              			System.out.println(var);
                              		}
                              		
                              		System.out.println(var);
                              	}
                              
                              }
                              was zu

                              Exception in thread "main" java.lang.Error: Unresolved compilation problem:
                              var cannot be resolved

                              at Test.main(Test.java:1
                              führt.

                              Kommentar

                              Lädt...
                              X