Ankündigung

Einklappen
Keine Ankündigung bisher.

Text nach bestimmten Wörter absuchen und ersetzen

Einklappen

Neue Werbung 2019

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

  • Text nach bestimmten Wörter absuchen und ersetzen

    Hey Jungs.
    Wörter aus einem Text heraussuchen ist an sich kein Problem.
    Das löse ich wie folgt.
    PHP-Code:
    <?php 
            $wordsArr 
    = array('/Hallo/''/du/''/test/');
            
    $ersetzungArr = array('[url="index.php?who=hallo"]Hallo[/url]','[url="index.php?who=du"]DU[/url]','[url="index.php?who=blop"]TEST[/url]');
            
    $text "Hallo.
     Ich wollte nur sagen du bist ein einzigartiger test! dubidu"
    ;
            
    $text preg_replace($wordsArr$ersetzungArr$text);
            echo(
    $text);
        
    ?>
    Bin allerdings noch nie mit diesen Suchparametern (/, usw.) klar gekommen.
    Das Problem ist, das er nach diesem Script beispielsweise auch "dubidu" unterstreichen würde.

    Kann mir da jemand helfen?
    Wäre wunderbar, Greetz DeMoehn
    Mit Zitat antworten

  • #2
    Hallo DeMoehn und Willkommen unter 'uns Jungs'
    Das wichtigste bei reg. Ausdrücken ist zu definieren, was man eigentlich genau erreichen möchte. Die Pattern Syntax kennt bspw. die sog. word boundary ( \b ), die angibt, dass die Suche nur vollständige Worte erkennen soll. Für genauere Hinweise bedarf es aber weiterer Infos deinerseits.
    Übrigens würde der Code oben wohl nur 'du' und 'du' aber nicht 'dubidu' unterstreichen (genauer: als Link ausgeben)

    EDIT: Bis auf den dritten Fall Deines Beispiels läßt sich die Funktion dahingehend zusammenfassen, dass der jeweils unterstrichene Begriff auch als Link-Parameter verwendet wird. Würde hier ein klar abzubildender Zusammenhang bestehen, ließe sich Dein Beispiel wesentlich vereinfachen. Aber wie gesagt, dazu muß erst die Funktion definiert werden.
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Vielen dank für die Antwort.
      Und ja, es soll der zu suchende Begriff auch als Link angegeben werden.

      Kommentar


      • #4
        Auch wenn Du die Sache etwas passiv anzugehen scheinst, gibts heute mal ne Lösung gratis. Wenn Du irgendwann mit diesen Suchparametern (/, usw.) klar[...]kommen möchtest, solltest Du Dich aber auch aktiv mit den Ausdrücken auseinandersetzen. Das php Manual gibt schon einige Hinweise unter dem preg Funktionsindex.
        Versuch mal das folgende Bsp. nachzuvollziehen. Die Arrays wurden reduziert, dafür die Funktion AddDelims eingeführt, die erst einen vollständigen reg. Ausdruck aus den Arrayelementen macht. Kannst das Ganze ja noch an Deine Bedürfnisse anpassen.

        PHP-Code:
        <?php

        $text     
        'Hallo.
         Ich wollte nur sagen du bist ein einzigartiger test! dubidu'
        ;
        $sReplace '[url="index.php?who=$1"]$1[/url]';

        $aWords = array (
                        
        'Hallo' 
                        
        'du'    
                        
        'test'
                        
        );

        function 
        AddDelims ($string)
          {
          return (
        sprintf ('#\b(%s)\b#' $string));
          }

        $aWords array_map ('AddDelims' $aWords);
        $text preg_replace ($aWords$sReplace $text);
        echo (
        $text);
        ?>
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          Vielen Dank für die schnelle Hilfe.
          Eine Lösung gratis hab ich grad nicht verlangt, ist natürlich super aber ein weiterer Tipp wäre auch klasse gewesen.

          Naja ich muss mir diese Suchparameter mal genauer ansehn das ist einfach noch ein unbeschriebenes Blatt für mich, komm damit gar nicht klar.

          Thx, DeMoehn

          Kommentar


          • #6
            Okay, mein Fehler. Deine vorletzte Antwort war so kurz und die Tipps eigentlich schon alle gegeben...
            Hier noch die Links nachgereicht:
            http://www.php.net/manual/en/referen....modifiers.php
            http://www.php.net/manual/en/referen...ern.syntax.php

            Ich habe meine ersten Schritte mit regExpr. übrigens mit Perl gemacht, einen kleinen Einstieg findest Du bei SelfHTML:
            http://de.selfhtml.org/perl/sprache/regexpr.htm
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar

            Lädt...
            X