IT-Academy Logo
Sign Up Login Help
Home - Programmieren - PHP - PHP: Zeichenkombinationen ersetzen



PHP: Zeichenkombinationen ersetzen

Jeder kennt Smilies und BB-Code von Foren und Gästebüchern. Doch wie funktioniert dies? Ein kurzes Tutorial.


Autor: Patrick Faes (dreamer)
Datum: 28-02-2004, 13:52:00
Referenzen: keine
Schwierigkeit: Anfänger
Ansichten: 10376x
Rating: 8 (8x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Einleitung

Viele Leute Fragen sich wie in Foren oder Gästebücher aus :) eine Grafik wird, wie Schimpfwörter ersetzt werden oder wie BB-Code funktioniert. Das ist sehr einfach und dieses Tutorial erklärt dies in nur 3 Minuten.

Die Theorie
  1. Sie speichern alle Wörter die nicht vorkommen dürfen in eine Variable und auch durch was diese ersetzt werden sollen.
  2. Sie nehmen eine Text-Datei aus z.B. einer MySQL-Datenbank und speichern diese in einer Variable.
  3. Mit der PHP-Funktion str_replace() suchen Sie nach den Wörtern oder Ähnliches, das nicht vorkommen darf und ändern diese. Anschließend wird der geänderte Text in eine Variable gespeichert und an den Bildschirm ausgegeben.
So, das war vielleicht etwas schnell oder? Lassen wir uns dann mal den Code analysieren.

Die Praxis

Zuerst werden wir in eine Variable des Array-Typs definieren was ersetzt werden soll und durch was es ersetzt werden soll.

<?php
$var = array(
':)' => '<img src="smiley.gif">', '[img=smiley.gif]' => '<img src="smiley.gif">', '[color=blue]' => '<span style="color:blue;">', '[/color]' => '</span>', 'Dreckschwein' => 'Lügner' )
Hier wird die Variable $var (ein Variable fängt in PHP immmer mit einem Dollar-Zeichen an) definiert als eine Array (ein Array ist ein Variable mit mehreren Werten).
Dafür schreiben Sie das Wort array und dahinter ein (. Zwischen einfachen Anführungszeichen schreibt man jeweils die Zeichenkombination die ersetzt werden soll. Achten Sie darauf, dass hier keine überflüssigen Leerstellen stehen dürfen und wenn die Zeichenkombination ein einfaches Anführungszeichen beinhaltet, muss dies maskiert werden mit \'. Nach jeder Zeichenkombination schreiben Sie =>. Danach schreiben Sie die Zeichenkombination (ein Wort, HTML, Lesezeichen usw.) die es ersetzen soll.

Lass uns jetzt mal die Funktion ansehen.

$text = 'Text';
$berichtigter_text = str_replace(array_keys($var), array_values($var),$text);
echo $berichtigter_text;
?>
Zuerst wird hier die Variable $text definiert. Dieser beinhaltet der Text der geändert werden soll.
Danach wird eine zweite Variable ($berichtigter_text) definiert. Dieser wird zusammen gestellt durch die Funktion str_replace(). Diese Funktion braucht die drei Parameter die von links nach rechts in dieser Reihenfolge stehen müssen:
  1. die zu änderende Zeichenkombination
  2. die Zeichenkombination wodurch es ersetzt werden soll
  3. der Text der überprüft werden soll
In diesem Beispiel sind das jeweils
  1. array_keys($var): mit array_keys() holt man die Keys aus einer Array (stehen links von =>. Diese sind die Kombination wonach gesucht wird.
  2. array_values($var): stehen rechts von dem =>. Dies sind die Werte (sprich Zeichenkombination) durch den die gesuchten Kombinationen ersetzt werden sollen.
  3. $text ist die Variable die überprüft wird.
Jetzt können Sie diesen Text auf dem Schirm zeigen lassen mit echo $berichtigter_text; oder Sie verarbeiten ihn noch weiter.


King1988
Rookie
Beitrag vom:
05-07-2007, 11:38:47

funktioniert perfekt :)

hast beim "$var = array( ..... ) " am Schluss das " ; " vergesssen. Absolute Anfänger würden nicht wissen wo das Problem liegt, wenn sie die Datei testen...

-----------------------------------------------------


Chester1
Junior-Member
Beitrag vom:
19-03-2004, 10:40:46

Sehr gut geschildert. Finde aber trotzdem das Anfänger die sich mit dieser Programmiersprache nicht so gut auskennen trotzdem Probleme beim lesen dieses Artikels haben werden.

-----------------------------------------------------
Ich weiß nicht ob sich etwas bessert wenn sich was ändert, aber es muss sich was ändern damit etwas besser wird!(Aphorismus)


dav133
Professonial
Beitrag vom:
01-03-2004, 21:29:52

interessant...

..ABER: Fange bitte nie eine Einleitung mit "Jeder kennt..." an. *g*

-----------------------------------------------------


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04510
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06247
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1158
Comments: 0