Crear una nube de etiquetas con PHP

1 COMENTARIO -  Publicado hace 16 meses -  Clasificado en: , ,

Pensaba poner una nube de etiquetas en el blog. Ya la tenía programado pero de momento creo que no la voy a incluir. Dejo aquí el código, de esta manera seguro que no lo pierdo y de paso puede que le aproveche a alguien. También he colgado un ejemplo con el código en funcionamiento. El vector $Palabras, en vez de alimentarse "manualmente" tendría que hacerlo recogiendo los valores de una base de datos.

<?php
$ContadordePalabras = array();
// METEMOS TODAS LAS ETIQUETAS DENTRO DE UN ARRAY
$Palabras = split( ", ", "Pinceles, Photoshop, Vectorial, Estilos, Photoshop, Recursos, Fotografia, Fotografia, Ilustracion, Ilustradores, Portafolios, Inspiracion, Fotografia, Fotografia, htaccess, Generadores, Wallpapers, Fondos, Curiosidades, Ilustracion, Ilustradores, jQuery, Datagrid, Scripts, Photoshop, showcase, inspiracion, Negocios, Internet, CSS, Recursos, Desarrollo, Links, Freeware, Aplicaciones, Conversor, Patrones, Fondos, Web, Generadores, Fotografia, Flash, Remoting, Frameworks, Desarrollo, Programacion, Utilidades, Software, VNC, MAC, Consejos, Windows, Utilidades, Registro, Privacidad, Software, Sincronizacion, Backups, Utilidades, Juegos, Nintendo, Emuladores, Firefox, Fotografia, Productividad, Consejos, Recursos, PDF, Documentos, Blog, Intenta, Google, Recursos, Web, Javascript, CSS, Recursos, Vector, Illustrator, Corel, Ilustracion, Desarrollo, MySql, Citas, Exito, Fracaso, jQuery, Tutoriales, Tablas, Javascript, Desarrollo, Google, Web2, Redes, Facebook, Juegos, Gratis, Recursos, Ocio, CSS, Plantillas, Layouts, Recursos, Links, Photoshop, Fuentes, Fotografia, Usabilidad, Formularios, Desarrollo, Citas, Inspiracion, Ilustracion, Nielsen, Aplicaciones, Articulos, Clases, PHP, Correo, Fotografia, Citas, Pesimistas, Humor, JQuery, Javascript, Tutoriales, CSS, Posters, Ilustradores, Photoshop, Recursos, PSD, Javascript, PHP, Desarrollo, Optimizacion, Ilustracion, Ilustradores, Packaging, Articulos, Lightbox, Javascript, Desarrollo, Software, Iconos, PNG, Recursos, Javascript, Links, Tutoriales, Fotografia, Citas, Programadores, Humor, CAPTCHA, PHP, OpenSource, Recursos, CSS, Gridfox, Firefox, Extensiones, Desarrollo, Fotografia, Photoshop, Atajos, Tips, Citas, Cine, Citas, Cine, Citas, Cine, SEO, Tips, Recursos, Recursos, Vectores, Illustrator, Citas, Fotografia, WordPress, CPU, Optimizacion, CSS, Recursos, Tips, Brushes, Photoshop, Recursos, Google, Tips, Ilustracion, Recursos, Vectores, Illustrator, EPS, Fuentes, Recursos, Tipografia, Brushes, Pinceles, Photoshop, Recursos, Firefox, Software, Cookies, Fotografia, PHP, Cadenas, Strings, Tips, Illustrator, Recursos, SCRUM, Proyectos, Metodologia, Iconos, Recursos, PNG, JQuery, Formularios, Validacion, Javascript, Flickr, Publicidad, Posters, Fuentes, Recursos, Tipografia, Fotografia, Tips, ASP, HTML, Citas, Optimismo, Firefox, Extensiones, Addons, Ilustracion, Fotografia, Citas, Fotografia, Tips, Visibilidad, Photoshop, Tutoriales, Tips, Citas, Software, Hardware, Icones, Brushes, Templates, Recursos, Vintage, Recursos, Fotografia, Usabilidad, Tips, , CSS, Tips, Trucos, Vectores, Recursos, Iconos, Photoshop, Pinceles, Brushes, Fotografia, Dreanweaver, Extensiones, JQuery, Fotografia, Feedburner, RSS, Sindicacion, Citas, Tutoriales, Wallpaper, Photoshop, Ilustracion, Siluetas, Vectores, Recursos, Citas, Inspiracion, Filtros, Photoshop, Tutoriales" );
foreach( $Palabras as $Palabra) {
$Palabra = strtolower($Palabra);
if (!array_key_exists($Palabra, $ContadordePalabras))
$ContadordePalabras[$Palabra] = 0;
$ContadordePalabras[$Palabra] += 1;
}
foreach( array_keys( $ContadordePalabras ) as $Palabra ) {
if ( $ContadordePalabras[$Palabra] > $max )
$max = $ContadordePalabras[$Palabra];
if ( $ContadordePalabras[$Palabra] < $min )
$min = $ContadordePalabras[$Palabra];
}
//VALORES QUE PODEMOS CAMBIAR
$tamanyo =38.0 /($max-$min );
$tamanyobase =12;
?>
<html>
<head>
<style type="text/css">
body { padding:50px; }
</style>
</head>
<body>
<div style="width:500px;background-color:#E4E4E4;border:1px solid #CCC;padding:10px;">
<?php
$NubeTags = array_keys($ContadordePalabras);
sort($NubeTags);
foreach( $NubeTags as $Palabra ){
$Pixeles = (int)($tamanyobase+ $ContadordePalabras[$Palabra]*$tamanyo);
echo "<a href='http://www.webintenta.com/".$Palabra."/' style='font-size:".$Pixeles."px;'>";
echo $Palabra."</a> &nbsp;";
}
?>
</div>
</body>
</html>

Algunas entradas relacionadas:

También te puede interesar:

COMENTARIOS

Publicado hace 4 meses
MaxS -   http://bajarmp3.sullca.com

Me sirvio de mucho el codigo, solo le cambie una funcion, por que la uso mas y funciona casi igual explode() por split, Saludos.
Haz un comentario

¡Gracias por dejar tu opinión! Por favor procura que tu comentarios sean apropiados respecto al tema tratado en la entrada; que no sean spam, u ofensivos, de otro modo, serán eliminados. Todos los comentarios serán moderados antes de su publicación por lo que su aparición en la web puede verse aplazada un cierto tiempo. Si deseas realizar algún comentario, crítica o sugerencia sobre la propia web puedes hacer a través de la siguiente dirección de correo: webintenta@webintenta.com