Seite 1 von 2

best. Woerter formatieren

Verfasst: 29.11.2008 10:34
von TLoD
Hallo Gemeinde,

könn ihr mir sagen, wie ein Code aussehen muss, wenn ich einen Text aus der DB auslese, den dann auf einer Seite widergebe und bestimmte Wörter in dem Text dann z.B. rot eingefärbt sein sollen?

Z.B. habe ich einen Text und möchte alle Wörter in diesem Text mit INC oder ATT in rot einfärben.
Z.B. habe ich einen Text und möchte alle Wörter in diesem Text mit INC oder ATT in rot einfärben.
Schon mal besten Dank für Eure Hilfe!

Verfasst: 29.11.2008 10:59
von Pyramide

Verfasst: 29.11.2008 11:02
von DanielHeinrich
Hi!

eventuell willst du dich ja einfach mal mit dem Thema MySQL (siehe z.B. hier oder hier) und RegEx (siehe z.B. hier oder hier) beschäftigen... ich denke das würde dir inesgesamt am meisten helfen ;-)

bis bald

Daniel Heinrich

Verfasst: 29.11.2008 13:07
von Valerion

Code: Alles auswählen

<?php
$neuer_text=str_replace('INC', '<span style="color: #FF0000;">INC</span>INC</span>', $alter_text);
?>
€dit: Bitte, jetzt ohne font :)

Verfasst: 29.11.2008 13:23
von Pyramide
SelfHTML zu <font> hat geschrieben:Die hier beschriebenen HTML-Elemente sind als deprecated eingestuft, das heißt, sie sollen in Zukunft aus dem HTML-Standard entfernt werden. Da es sich bei diesen Elementen um die schlimmste "Verunreinigung" von HTML als reiner Struktursprache handelt, die bisher passiert ist, gibt es richtige Kampfschriften und Hetzkampagnen gegen die weitere Verwendung dieser Elemente im Web. Diese Elemente stellten eine Notlösung in jener Zeit dar, als HTML noch keine Formatiersprache wie CSS zur Seite stand.

Verfasst: 29.11.2008 14:20
von Miriam
Gegenvorschlag:

Code: Alles auswählen

<span style="color: #FF0000;">INC</span>

Verfasst: 29.11.2008 18:14
von TLoD
So ich habe das ganze mal probiert.
So ist mein Code:

Code: Alles auswählen

                        $inhalte1=str_replace('INC', '<span style="color: #b10505;">INC</span>', $inhalte);
                        echo "  <tr>
                                        <td align=\"center\">".date(timeFormat($_SESSION['ID']),strtotime($daten[$i]))."</td>
                                        <td>".$nicks[$i]."</td>
                                        <td>".$inhalte1[$i]."</td>
                                </tr>";
Und das ist die Ausgabe
INC Die Anzahl der.....
Was muss ich nun anstellen, damit ich mehrere Begriffe einfügen kann? Kann ich in der () durch ein "Komma" die weiteren Begriffe einfach hinzufügen?

Besten Dank!

*EDIT*


Danke hat sich erledigt!
Ich werde gleich meine Lösung posten.

Verfasst: 29.11.2008 18:46
von Pyramide
Beide Parameter von str_replace können ein Array sein (siehe drittes Beispiel im PHP-Handbuch).

Verfasst: 29.11.2008 19:01
von TLoD
So und hier ist die versprochene Lösung:

Code: Alles auswählen

        function formatierung($inhalte){
        $SearchValues = array(
            "INC",
            "inc",
            "ATT",
            "att",
            "Raid",
            "raid",
            "RAID",
            "OK",
            "ok",
            "clean"
        );
           $ReplacementValues = array(
                "<span style=\"color:#b10505\">INC</span>",
                "<span style=\"color:#b10505\">inc</span>",
                "<span style=\"color:#b10505\">ATT</span>",
                "<span style=\"color:#b10505\">att</span>",
                "<span style=\"color:#b10505\">Raid</span>",
                "<span style=\"color:#b10505\">raid</span>",
                "<span style=\"color:#b10505\">RAID</span>",
                "<span style=\"color:green\">OK</span>",
                "<span style=\"color:green\">ok</span>",
                "<span style=\"color:green\">clean</span>"
            );
        return str_replace($SearchValues, $ReplacementValues, $inhalte);
    }

Code: Alles auswählen

                             echo "  <tr>
                                        <td align=\"center\">".date(timeFormat($_SESSION['ID']),strtotime($daten[$i]))."</td>
                                        <td>".$nicks[$i]."</td>
                                        <td>".formatierung($inhalte[$i])."</td>
                                </tr>";
Werde das ganze bei Gelegenheit noch durch $rows ersetzten, dann ist das ganze leichter administrierbar, aber für den Anfang bin ich erstmal froh, es so hinbekommen zu haben. Ein dickes DANKE an alle, die mir beim Grübeln auf die Sprünge geholfen haben!

Re: best. Woerter formatieren

Verfasst: 30.11.2008 15:36
von Xwitz
Das färbt INC und ATT ein aber nicht alle Wörter mit INC oder ATT, was Du anfänglich wolltest. Was willst Du nun?