Der Anfang ist schon richtig. Du musst alle vorkommenden Wörter erstmal in einen Array packen.
PHP-Code:
$text = 'Dies ist ein Text, und dieser Text ist zu durchsuchen.';
//Im ersten Gang alle Sonderzeichen zu Leerzeichen umwandeln, dann am Leerzeichen
//exploden und die geTRIMten Arrayelemente zaehlen:
$wortzaehler = array();
$ersetzen = array(
'.' => ' ',
',' => ' ',
'?' => ' ',
'!' => ' ',
);
$text = strtr($text,$ersetzen);
$woerter = explode(' ',$text);
foreach ( $woerter as $wort ) {
$wort = trim($wort);
if ( $wort != '' ) {
if ( isset($wortzaehler[$wort]) ) {
$wortzaehler[$wort]++;
} else {
$wortzaehler[$wort] = 1;
}
}
}
print_r($wortzaehler);
Wahrscheinlich ist es eleganter, alle unerwünschten Zeichen mit preg_replace und einer whitelist zu ersetzen, aber ich hab grade keine Lust die Regex zu bauen.