本文介绍下,用php创建标签云的一段代码,通过自定义的php函数创建标签云效果。有需要的朋友参考下。
php 标签云的创建代码一例,如下:
- <!--?php
- /**
- * php 标签云效果
- * edit: bbs.it-home.org
- */
- function getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 )
- {
- $minimumCount = min( array_values( $data ) );
- $maximumCount = max( array_values( $data ) );
- $spread = $maximumCount - $minimumCount;
- $cloudHTML = '';
- $cloudTags = array();
- $spread == 0 && $spread = 1;
- foreach( $data as $tag =--> $count )
- {
- $size = $minFontSize + ( $count - $minimumCount )
- * ( $maxFontSize - $minFontSize ) / $spread;
- $cloudTags[] = ''
- . htmlspecialchars( stripslashes( $tag ) ) . '';
- }
- 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);
我收藏的一段php标签云的核心代码:
- <!--?php
- $artist = array("the roots","michael jackson","billy idol","more","and more","and_YET_MORE");
- $count = array(5,3,9,1,1,3);
- $highest = max($count);
- for ((int) $x = 0; x < count($artist); $x++)
- {
- $normalized = $count[$x] / $highest;
- $heading = ceil($normalized * 6); // 6 heading types
- echo "<h".$heading."-->".$artist[$x]."";
- }
- ?>
|