marcolino: string durchusuchen und ausgeben

Hallo zusammen

Ich habe einen String welchen ich durchsuchen möchte und dann den Text anzeigen von bis.

Als Beispiel:

********************************
Da ist auch irgend ein Text und sonst nochwas
<h1>Hier ist der ganze text</h1>
Hier ist auch wieder ein Text usw.
********************************

num möchte ich, dass es mir "Hier ist der ganze text" anzeigt also nach
<h1> im string sucht und bis </h1> anzeigt.

Wie kann ich das machen?

Freue mich riesig auf Eure Antworten.

  1. Hi!

    Wie kann ich das machen?

    Das geht mit einem Regulären Ausdruck.

    off:PP

    --
    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
    1. Hallo

      Vielen Dank schon mal für die prompte Antwort. Was ich noch nicht ganz verstehe...

      Wenn ich einfach nach <h1></h1>
      suchen will wieso sind da noch so viele Zeichen dazwischen [^>]*>(.*)
      was genau bedeuten die? wieso ist es nicht einfach so:

      preg_match_all("=<h1></h1>=siU",

      und was genau bedeuten die = Zeichen?
      Danke für Eure Hilfe.

      ***************************

      $str = "lalalala
      <body bgcolor=#cccccc>lang und weilig
      noch eine zeile
      <h1>Bla</h1>
      </body>
      tralalal";
        preg_match_all("=<h1[^>]*>(.*)</h1>=siU", $str, $a);
        print $a[1][0];

      ***************************

      1. Hi,

        Wenn ich einfach nach <h1></h1>
        suchen will wieso sind da noch so viele Zeichen dazwischen [^>]*>(.*)

        wenn Du nach "<h1></h1>" suchen willst, benötigst Du keine Zeichen dazwischen. Du benötigst nicht einmal Regular Expressions - eine simple Zeichenketten-Operation ist hierfür sehr viel sinnvoller.

        was genau bedeuten die?

        Bitte beschäftige Dich zunächst grundsätzlich mit einer neuen Technik, die Du einzusetzen gedenkst. Es gibt genügend Dokumentationen, Erklärungen der Grundlagen und sogar Tutorials.

        wieso ist es nicht einfach so:
        preg_match_all("=<h1></h1>=siU",

        Weil sowas niemand mit einer Regular Expression machen würde.

        und was genau bedeuten die = Zeichen?

        Das sind die Delimiter. Weiteres erfährst Du, wenn Du Dich mit den Grundlagen beschäftigst.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
      2. Hallo,

        wieso sind da noch so viele Zeichen dazwischen [^>]*>(.*)

        Weil noch zusätzliche Attribute vorhanden sein könnten - zB style.

        Mit freundlichem Gruß
        Micha

  2. Hello,

    nun möchte ich, dass es mir "Hier ist der ganze text" anzeigt also nach
    <h1> im string sucht und bis </h1> anzeigt.

    Wie kann ich das machen?

    Wenn Du nur genau nach "<h1>" und "</h1>" suchst, also nicht nach '<h1 class="irgendwas">' oder ähnlich, dann ist stripos() z.B. brauchbar für Dich zum Auffinden des Start- und Stoppunktes.
    http://de.php.net/manual/de/function.stripos.php

    und dann substr() zum Ausscheinden des teilstrings
    http://de.php.net/manual/de/function.substr.php

    Wenn Du Multibyte-Codierung verwendest, also nicht iso8859-x, dann musst Du allerdings die Versionen aus der Gruppe der mb_* Funktionen benutzen.
    http://de.php.net/manual/de/ref.mbstring.php

    Ein harzliches Glückauf

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de