Hallo,
ich entwickle gerade einen Mambot für Joomla. Mit dem Bot möchte ich den Inhalt einer Seite durchsuchen. Der Bot soll jedes einzelne Wort eines Absatzes das zwischen Geschweiftenklammern steht, mit einem bestimmten Wert vergleichen und wenn das zu trifft, soll es z.B. fett dargestellt werden.
Der Text sieht z.B. so aus:
Und nach dem Durchlauf des Bots soll es so aussehen: (zur besseren Übersicht zusätzlich andere Farbe!)
Bis jetzt bin ich soweit gekommen, jedoch ist der Code unschön, da er denke ich zu lang und komplex ist und ich Probleme habe mit Sonderzeichen wie , . - _ ! u.s.w. und er sucht leider den ganzen Text durch und nicht jeden speziellen Bereich der zwischen { und } steht.
Könnte mir jemand da bitte weiterhelfen? Habe erst vor ein paar Tagen mit PHP angefangen und es übersteigt etwas meine Fähigkeiten. Besonders wenn es um die Sonderzeichen geht, die hinter oder vor einem Wort stehen. Z.B.: "Hallo[COLOR="Red"],[/COLOR] es freut mich Sie kennen zu lernen[COLOR="Red"]![/COLOR]"
Mein Code:
Windows XP
PHP4
XAMPP / Joomla 1.5
php.ini (Standard, ohne Veränderung)
Chris
ich entwickle gerade einen Mambot für Joomla. Mit dem Bot möchte ich den Inhalt einer Seite durchsuchen. Der Bot soll jedes einzelne Wort eines Absatzes das zwischen Geschweiftenklammern steht, mit einem bestimmten Wert vergleichen und wenn das zu trifft, soll es z.B. fett dargestellt werden.
Der Text sieht z.B. so aus:
{Hier steht irgendein Text bla bla,} in dem einige Teile des Textes bla mit bestimmten Klammern umklammert sind. bla_bla-bla! Alle Wörter in diesen Bereichen sollen separat ausgelesen werden} und {mit bla.bla, einem anderen Wert verglichen werden. bla_bla-bla.}
{Hier steht irgendein Text [COLOR="DarkGreen"]bla[/COLOR] [COLOR="DarkGreen"]bla[/COLOR],} in dem einige Teile des Textes bla mit bestimmten Klammern umklammert sind. bla_bla-bla! {Alle Wörter in diesen Bereichen sollen separat ausgelesen werden} und {mit [COLOR="DarkGreen"]bla[/COLOR].[COLOR="DarkGreen"]bla[/COLOR], einem anderen Wert verglichen werden. [COLOR="DarkGreen"]bla[/COLOR]_[COLOR="DarkGreen"]bla[/COLOR]-[COLOR="DarkGreen"]bla[/COLOR].}
Könnte mir jemand da bitte weiterhelfen? Habe erst vor ein paar Tagen mit PHP angefangen und es übersteigt etwas meine Fähigkeiten. Besonders wenn es um die Sonderzeichen geht, die hinter oder vor einem Wort stehen. Z.B.: "Hallo[COLOR="Red"],[/COLOR] es freut mich Sie kennen zu lernen[COLOR="Red"]![/COLOR]"
Mein Code:
PHP-Code:
$regex = "/\{(.*?)\}/";
$html_temp = preg_replace($regex, "$1", <HierKommtDerInhaltRein>);
$html_array = array();
$html_array = preg_split("/(\s)/", $html_temp);
$word_array = array();
for($i = 0; $i < count($html_array); $i++) {
$word = $html_array[$i];
$title = "<HierDasGesuchteWort>";
if(strrpos($word, ",") == true) {
$word_array = explode(",", $word);
for($c = 0; $c < count($word_array); $c++) {
if(strlen(trim($word_array[$c])) > 1) {
if(preg_match("|" . strtolower("\b" . $title . "\b") . "|", strtolower($word_array[$c]))) {
$html_content .= "<b>" . $word_array[$c] . "</b>, ";
} else {
$html_content .= $word_array[$c] . ", ";
}
}
}
} else {
if(preg_match("|" . strtolower("\b" . $title . "\b") . "|", strtolower($word))) {
$html_content .= "<b>" . $word . "</b> ";
} else {
$html_content .= $word . " ";
}
}
}
echo($html_content);
PHP4
XAMPP / Joomla 1.5
php.ini (Standard, ohne Veränderung)
Chris
Kommentar