Wort aus Sring extrahieren

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

  • Wort aus Sring extrahieren

    Zunächst: Ich habe schon ne gute Stunde gegoogelt und auch die Forensuche benutzt, jedoch nichts passendes gefunden, ich habe also mein Möglichstes getan

    Zum eigentlichen Problem:
    Aus einem String sollen Wörter extrahiert werden, also z.B. so:

    <tag>Hallo</tag> blablablabla blub de blub <tag>Peter</tag>

    Nun soll eben Hallo und Peter in einer Variablen/Array abgelegt werden, sodass ich diese Benutzen kann. Die Tags sind keine HTML-Tags!

    Ich hoffe hier kann mir jemand helfen

  • #2
    entweder mit einem regulären ausdruck oder mittels xml (z.b. dom), wenn die anforderung groß genug ist.

    Kommentar


    • #3
      PHP-Code:
      <?php
      // Das Leerzeichen muß davor, da sonst die erste Position 0 gewesen wäre.
      $txt " "."<tag>Hallo</tag> blablablabla blub de blub <tag>Peter</tag>";
      $ende 0;
      $werte = array();
      $suchwert1 "<tag>";
      $suchwert2 "</tag>";
      while (!
      $ende)
      {
          
      $strpos1 strpos($txt$suchwert1);
          
      $strpos2 strpos($txt$suchwert2);
          if (!
      $strpos1)
          {
              
      $ende 1;
              print 
      "<p>Fertig</p>";
          }
          else
          {
              
      $werte[] = substr($txt,$strpos1+strlen($suchwert1), $strpos2-$strpos1-strlen($suchwert1));
              
      $entfernen substr($txt,$strpos1$strpos2+strlen($suchwert2));
              
      $txt str_replace($entfernen""$txt);
          }
              
      }
      while (list (
      $a$b) = each($werte)) 
      {
          print 
      $b."<br/>";
      }
      ?>

      Kommentar


      • #4
        // Das Leerzeichen muß davor, da sonst die erste Position 0 gewesen wäre.
        Nur wenn man den Unterschied zwischen (!$strpos1) und ($strpos1 !== false) nicht kennt.

        Kommentar


        • #5
          hier noch eine etwas einfachere Variante:

          PHP-Code:
          <?
          error_reporting(E_ALL);
          $mystring = "<tag>Hallo</tag> blablablabla blub de blub <tag>Peter</tag><tag>Hallo</tag> blablablabla blub de blub <tag>Peter</tag>";
          preg_match_all("#<tag>(.*?)</tag>.*?<tag>(.*?)</tag>#si", $mystring, $tags);
          for($i=0;$i<count($tags[1]);$i++){
           $strings[] = $tags[1][$i]." ".$tags[2][$i];
          }
          print_r($strings);
          ?>

          Ausgabe: 

          Array
          (
              [0] => Hallo Peter
              [1] => Hallo Peter
          )

          Kommentar

          Lädt...
          X