Hallo Gemeinde,
ich stehe vor folgendem Problem: Ich habe drei Funktionen in einem PHP-Script bei der bestimmte Wörter aus einem Text durch Links ersetzt werden. Wörter sollen aber nur einmal im Text durch einen Link ersetzt werden. Deshalb möchte ich jedes Wort in einem Array speichern und immer abfragen, ob das Wort schon einmal aufgetreten ist, oder nicht. Wenn nicht wird das Wort einem Array hinzugefügt, sonst halt nicht. Irgendwie scheint das mit dem Array aber nicht zu funktionieren; entweder bleibt das Array nicht erhalten, oder ich habe irgendwo einen Denkfehler (Problem mit der weiblichen Logik ;-)).
Hier mal die Funktionen:
function ersetze_text (...){
$text = preg_replace_callback('/(<.*=.*>)| (\w+)/','keyword_callback', $text);
return $text;
}
function keyword_callback ($s)
{
if (check_repeat($s[2])) return $s[2];
$article = keyword_best_article($s[2]);
if ($article) {
return sprintf('bla,bla...', $article->id, $article->title, $s[2]);
}
else {
return $s[2];
}
}
function check_repeat($wort)
{
global $wortliste;
if (array_search($wort,$wortliste)) return 1;
array_push($wortliste,$wort);
return 0;
}
Was mache ich falsch? Kann mir jemand helfen?
Güße
Gabi