I have a script that strips the HTML tags from a website and sends back just the words...
What I want to do is count how many times each unique word has been used and then display it on the page.
How would I do this?
Finding how many times a unique word has been used...
Moderator: General Moderators
Thanks for that!
I created this code:
I want it to display the word and the amount of times it is used but this code above wont work...
I then also need it to display the words used the msot times first...
Thanks for your help jshpro2!
I created this code:
Code: Select all
$words = explode(" ",$fields[content]);
$words_count = array_count_values($words);
foreach($words_count as $word) {
echo $word[0] . " " . $word[1] . "<br/>";
}I then also need it to display the words used the msot times first...
Thanks for your help jshpro2!
This would print a list of the top ten words in a glob of text.
Produces:
Code: Select all
$big_text = 'Lorem <b>ipsum</b> dolor sit amet, <i>consectetuer</i> adipiscing elit. Duis enim. Praesent viverra rhoncus ipsum. Donec gravida, urna non ornare placerat, enim tortor auctor massa, nec tempus neque mauris non ante. Fusce porttitor velit eu magna. In a tellus a justo venenatis porttitor. Suspendisse dapibus lobortis sapien. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nunc elit justo, suscipit nec, vehicula sit amet, fermentum id, nibh. Integer tempor, diam eu ornare accumsan, nisl quam convallis nunc, sodales convallis elit nisl nec tortor. Etiam elementum eros in lorem. Integer volutpat tortor sed nulla. Ut orci lectus, hendrerit a, placerat eget, luctus sed, elit.
Etiam eget est. Suspendisse viverra neque id est. Aenean lacinia. Ut vitae tortor a eros dignissim iaculis. Cras tempus nisi vel risus. Donec in risus vel orci vulputate eleifend. Suspendisse commodo vulputate erat. Nullam eu dolor ac elit semper pellentesque. Integer sed lectus. Vivamus consequat tellus id turpis. Morbi eu sapien porttitor enim fringilla viverra. Morbi justo nunc, semper eu, venenatis sed, scelerisque vitae, eros. Maecenas aliquam lobortis quam. Pellentesque mollis, mauris nec pretium egestas, nisl libero malesuada felis, a lobortis neque purus vel augue. Nam cursus euismod urna.
Etiam sollicitudin, mauris vitae sodales aliquam, dolor eros vehicula justo, vel suscipit sem justo et orci. Suspendisse leo dolor, condimentum eu, porttitor vitae, dapibus ac, ante. Etiam a augue. Nunc quis risus. Cras non est vel erat congue consequat. Maecenas viverra iaculis lectus. In feugiat nisi nec tellus. Donec odio. Nulla viverra tortor eu enim. Aenean justo odio, accumsan a, ultricies a, faucibus non, tellus.
Etiam commodo magna eu mi. Nulla id felis. Donec a tellus. Suspendisse adipiscing venenatis nisi. Curabitur et tellus. Nullam vitae nibh in turpis lacinia dictum. Duis nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Suspendisse tincidunt vestibulum mi. Duis scelerisque lectus. Ut ullamcorper nisi porttitor est. Donec condimentum lectus sollicitudin pede. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Quisque condimentum justo at velit. Vestibulum a magna.
Vestibulum cursus sodales purus. Curabitur pharetra, pede et vestibulum ultricies, ipsum pede adipiscing eros, condimentum nonummy nibh lectus non dolor. Ut nec massa et lectus tincidunt luctus. Nulla a dolor non tortor condimentum placerat. Aenean commodo. Fusce lectus velit, adipiscing eget, viverra sit amet, aliquam id, lorem. Vestibulum nonummy. Maecenas ornare imperdiet lacus. Integer eu neque consectetuer diam pharetra euismod. Nunc sodales egestas erat. Quisque ligula urna, rutrum non, porta et, elementum nec, sem. Ut eget urna. In ante nibh, scelerisque a, hendrerit eu, consectetuer vitae, lectus. Etiam risus tortor, adipiscing quis, luctus et, pharetra vel, nunc.
';
$words = array_count_values(preg_split('/\W+/', strip_tags($big_text)));
arsort($words);
echo '<ul>';
foreach(array_slice($words,0,10) as $word => $count) {
echo "<li>$word occured $count times.</li>\n";
}
echo '</ul>';Code: Select all
<ul><li>a occured 12 times.</li>
<li>eu occured 10 times.</li>
<li>lectus occured 9 times.</li>
<li>nec occured 7 times.</li>
<li>tortor occured 7 times.</li>
<li>non occured 7 times.</li>
<li>justo occured 7 times.</li>
<li>viverra occured 6 times.</li>
<li>per occured 6 times.</li>
<li>Suspendisse occured 6 times.</li>
</ul>You need to doMr Tech wrote:Thanks for that!
I created this code:
I want it to display the word and the amount of times it is used but this code above wont work...Code: Select all
$words = explode(" ",$fields[content]); $words_count = array_count_values($words); foreach($words_count as $word) { echo $word[0] . " " . $word[1] . "<br/>"; }
I then also need it to display the words used the msot times first...
Thanks for your help jshpro2!
Code: Select all
foreach ($words_count as $word => $times) {
echo $word . ' was found ' . $times . ' times';
}