Pages

Thursday 27 December 2012

How to generate a Tag Cloud using PHP Script?

How to generate a Tag Cloud using PHP Script?

Using PHP Source code, we can generate tag cloud easily. You will find Tag Cloud in almost each and every website and blog. Most of the websites you browse are coded in PHP including facebook and tag cloud is very common in these websites. So, I will use PHP script to generate tag cloud here in this post.

PHP Tag Cloud Generator Script:

I have created a PHP function "getCloud" to generate tag cloud using PHP script. This function accepts array of tags, maximum and minimum size of the tags which will be the part of cloud.

function getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 )
{
 $minimumCount = min($data);
 $maximumCount = max($data);
 $spread       = $maximumCount - $minimumCount;
 $cloudHTML    = '';
 $cloudTags    = array();
 $spread == 0 && $spread = 1;
 foreach( $data as $tag => $count )
 {
  $size = $minFontSize + ( $count - $minimumCount )
   * ( $maxFontSize - $minFontSize ) / $spread;
  $cloudTags[] = '<a style="font-size: ' . floor( $size ) . 'px'
  . '" class="tag_cloud" href="#" title="\'' . $tag  .
  '\' returned a count of ' . $count . '">'
  . htmlspecialchars( stripslashes( $tag ) ) . '</a>';
 }

 return join( "\n", $cloudTags ) . "\n";
}

/**************************
****   Sample usage    ***/

$arr = Array('Actionscript' => 35, 'Adobe' => 22, 'Array' => 44, 'Background' => 43,
 'Blur' => 18, 'Canvas' => 33, 'Class' => 15, 'Color Palette' => 11, 'Crop' => 42,
 'Delimiter' => 13, 'Depth' => 34, 'Design' => 8, 'Encode' => 12, 'Encryption' => 30,
 'Extract' => 28, 'Filters' => 42);

echo getCloud($arr, 12, 36);

No comments:

Post a Comment

About the Author

I have more than 10 years of experience in IT industry. Linkedin Profile

I am currently messing up with neural networks in deep learning. I am learning Python, TensorFlow and Keras.

Author: I am an author of a book on deep learning.

Quiz: I run an online quiz on machine learning and deep learning.