21. marts 2007 - 01:50
Der er
2 kommentarer
Fjerne (for mange) af samme ord fra streng
Hej
Jeg vil spørge om hjælp til denne problemstilling.
I en streng på f.eks. 500 ord ønsker jeg at et bestemt ord ikke udgør mere end max 5% af det samlede antal ord.
Hvis mit ord overskrider denne grænse skal ordet fjernes fra teksten indtil grænsen på 5% nåes.
Jeg er usikker på om dette er et regex eller php spørgsmål, men nu prøver jeg om der er et klogt hoved der læser med her :)
21. marts 2007 - 02:29
#1
densiteten af ordet i teksten kan udregnes ved:
round((count(explode("$ord", $tekst)) / count(explode(" ", $tekst)) * 100) ,2)
11. november 2007 - 18:14
#2
Jeg ved ikke om det stadig er relevant for dig, men here re et muligt bud:
function densitet($tekst, $ord) {
return round((count(split("\b$ord\b", $tekst)) / count(explode(" ", $tekst)) * 100), 2);
}
function trimOrd($tekst, $ord) {
while (densitet($tekst, $ord) > 5) {
$tekst = preg_replace("\b$ord\b", "", $text, 1);
}
return $tekst;
}