Ich möchte bestimmte Wörter durch Links ersetzen und zwar nur solche die im Texte frei stehend sind. Aus diesem Grund
möchte ich dem Suchwort ein Leerzeichen anhängen, damit er nicht auf die Idee kommt Wörter in einer
zusammenhängenden Zeichenkette auszutauschen.
Beispiel: Ich fliege heute mit einem Flugzeug nach London
Flugzeug wird durch den Link <a href="http://www.flugticket.de" titel="Flugticket">Flugzeug</a> ausgetauscht.
Wenn jemand z.B: http://www.flugzeug.de schreibt möchte ich NICHT das es ausgetauscht wird.
functions_content.php
Code: Alles auswählen
/**
* Censoring
*/
function censor_text($text)
{
static $censors;
// Nothing to do?
if ($text === '')
{
return '';
}
// We moved the word censor checks in here because we call this function quite often - and then only need to do the check once
if (!isset($censors) || !is_array($censors))
{
global $config, $user, $auth, $cache;
// We check here if the user is having viewing censors disabled (and also allowed to do so).
if (!$user->optionget('viewcensors') && $config['allow_nocensors'] && $auth->acl_get('u_chgcensors'))
{
$censors = array();
}
else
{
$censors = $cache->obtain_word_list();
}
}
if (sizeof($censors))
{
// Anhängen von leerzeichen damit die Wörter richtig ausgetauscht werden.
$mig_word = " ". $censors['match']. " "; // Das geht dummerweise nicht
$mig_replace = " ". $censors['replace']. " ";
return preg_replace($mig_word, $mig_replace, $text);
}
return $text;
}