preg_match und wörter auswerten

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

  • preg_match und wörter auswerten

    hallo zusammen,

    folgendes:
    while( $str != "" ) {
    if(preg_match(" /^([^a-zA-ZöäüÖÄÜß]+)(.*)/s",$str,$matches)) {
    array_push($a_str,$matches[1]);
    $str = $matches[2];
    }
    if(preg_match(" /^([a-zA-ZöäüÖÄÜß]+)(.*)$/s",$str,$matches)) {
    array_push($a_str,$matches[1]);
    $str = $matches[2];
    }
    }
    print_r($a_str);

    hier mein problem:
    ich weiss manchmal ist es schwer zu verstehen wat ich schreibe
    aber ich habe da noch ne frage... wie immer geht es um reguläre ausdrücke.

    siehe oben meine schleife mit zwei regulären ausdrücken...

    folgendes :
    mytext kommt aus einen textarea in formular!
    das problem was ich jetzt habe ist folgender !
    ich habe vor mir ein filter zuschreiben dieser soll mir einfach alle plausiblen wörter durch einen wortregel jagen und am ende als html_text ausgeben.

    nehmen wir mal an ich habe einen satz der auch htmltag enthält
    z.b "dies ist <a href="index.html">test</a> "

    siehe oben mein durchlauf erhalte ich natürlich momentan müll.
    kann ich auch meinen regulären ausdruck eine alternative geben wo ich sage bitte <a>*</a> nimm einfach das sternchen zum filtern.

    also statt wie im beispiel jetzt href zu filtern sollte er nur test filtern

    dies gleiche ist genauso mit http://www.php.net wenn dies noch im satz stehen würde sollte er bitte http://www.php.net komplett ins array jagen und nicht

    1. beispiel
    array[0] -> "dies"
    array[1] -> " "
    array[2] -> "<"
    array[3] -> "a"
    array[4] -> " "
    array[5] -> "href"
    array[6] -> "="
    usw.
    sollte aber aussehen :

    array[0] -> "dies"
    array[1] -> " "
    array[2] -> "<a href=......"
    array[3] -> "test"
    array[4] -> "</a>"
    array[5] -> " "


    weiss jemand vielleicht rat ? diese zwei sachen wollen einfach nicht gelingen. ich hoffe du verstehst mich ?

    gruss
    hans

  • #2
    $array = preg_split('/<[^>]*>/', $str, -1, PREG_SPLIT_DELIM_CAPTURE);

    und dann lass dir mal $array ausgeben; dann wirst du wissen welche Teile davon du durch deine "Wortregel" jagen musst.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      hallo titus,
      thx für die schnelle antwort. diesen ausdruck kenne ich auch schon nur hilft er mit irgendwie nicht weiter.

      jetzt erhalte ich zwar den verlinkungtext im array aber wo ist mein htmltag ?

      vielleicht habe ich mich falsch ausgedrückt . ich versuche es nochmal...

      habe eine textarea als im formular..
      textarea enthält -> "Dies ist ein Test. Siehe <a href="index.html">Link</a>"

      so meine schleife füllt das array so :
      Array (
      [0] => Dies
      [1] =>
      [2] => ist
      [3] =>
      [4] => ein
      [5] =>
      [6] => Test
      [7] => .
      [8] => Siehe
      [9] => <
      [10] => a
      [11] =>
      [12] => href
      [13] => ='
      [14] => index
      [15] => .
      [16] => html
      [17] => '>
      [18] => Link
      [19] => a
      [21] => >
      )
      dies ist falsch. ich möchte nämlich sowas bekommen.
      Array (
      [0] => Dies
      [1] =>
      [2] => ist
      [3] =>
      [4] => ein
      [5] =>
      [6] => Test
      [7] => .
      [8] => Siehe
      [9] => <a href="index.html">
      [10] => Link
      [11] => </a>
      )
      somit kann ich direkt das wort "Link" durch meine wortregel prüfen.
      baue mir gerade mal meine eigene wörtprüfung..
      ich will nämlich einfach nur die htmltags nicht prüfen soweit sie natürlich in ordnung sind wenn nicht dann muss ich auch beispiel -> "<ahref... somit prüfe ich eben ahref..
      ist ja nen wort.

      wenn ich jetzt den text wiedergeben möchte .. gebe ich einfach das array aus und schon habe ich meinen korrigierten text.

      vielleicht geh es auch anders ? hoffe es ist verstanden worden.

      gruss
      hans

      Kommentar

      Lädt...
      X