in_array mit textbestandteilen

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

  • in_array mit textbestandteilen

    hallo

    ich habe wieder mal eine frage. wahrscheinlich bin ich auf einem komplett falschen weg, aber ich schildere einmal mein problem:

    ich möchte, bestimme teile highlighten (bis jetzt fett formatieren).
    meine eigentliche funktion stimmt bereits. jedoch möchte ich nun, dass es auch bestandteile von wörtern durchsucht und nicht nur ganze wörter.

    hier mal der code:
    PHP-Code:
    <?php
    function check_hl($text)
    {
        global 
    $def_highlight_arr;
        
    $text_pieces explode(" "$text);
        
    $count 1;
        
    ## jedes element überprüfen, ob wort im array vorhanden ist
        
    foreach($text_pieces as $text_key => $text_value)
        {
            if(
    in_array($text_value$def_highlight_arr))
            {
                
    $def_text_arr[$count] = "<b>" $text_value "</b>";
            }
            else
            {
                
    $def_text_arr[$count] = $text_value;
            }
            
    $count++;
        }
        
    ## element für die ausgabe aufbereiten
        
    foreach($def_text_arr as $def_text_key => $def_text_value)
        {
            
    $return_value .= $def_text_value " ";
        }
        return 
    trim($return_value);
    }
    echo 
    check_hl("hier ist ein text");
    ?>
    Ich müsste dazu wahrscheinlich nur folgende zeile ersetzen:
    PHP-Code:
    if(in_array($text_value$def_highlight_arr)) 
    Könnte ich hier mit einem regulären ausdruck arbeiten? wenn ja, wie würde dies etwa aussehen?
    First: Things get worse under pressure.
    Second: If anything just cannot go wrong, it will anyway
    Third: A falling object will always land where it can do the most damage.

  • #2
    Grundsätzlich: Für Text empfielt sich nie ein Array, der jedes Wort einzeln als value enthält. Du solltest entsprechend deine komplette Funktion überarbeiten.

    Zur Frage:
    Da du ein Array zum Suchen deiner Wörter nutzen willst, muss du entsprechend:
    Code:
    $def_highlight_arr = array ("#(mein erstes wort)#i","#(mein zweites wort)#i", ...);
    anpassen.

    Danach einfach über:
    Code:
    $text = preg_replace ($def_highlight_arr,"<span style='font-weight:bold'>\\1</span>",$text);
    aufrufen; das foreach entfällt. Ich setze bei diesem Beispiel voraus, dass $text als String übergeben wird.
    Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

    Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

    Wer suchet, der findet: http://www.php-resource.de/forum/search.php
    Immer noch nichts? Dann frag!


    Mit freundlichen Grüßen,
    @4u

    Kommentar


    • #3
      STARK! :-)

      so einfach könnte es sein.

      ich danke dir viel mal!
      First: Things get worse under pressure.
      Second: If anything just cannot go wrong, it will anyway
      Third: A falling object will always land where it can do the most damage.

      Kommentar

      Lädt...
      X