หน้าแรก/บทความ/สร้าง Tag Cloud ด้วย PHP
กลับหน้าบทความ
🏷️PHP

สร้าง Tag Cloud ด้วย PHP

ฟังก์ชัน PHP สำหรับสร้าง Tag Cloud แบบ Weighted โดยปรับขนาด font ตามจำนวนครั้งที่ Tag ถูกใช้งาน

ศิริชัย ธีรภัทรสกุล (ตั้ม)อ่าน 3 นาที29 กรกฎาคม 2551
#PHP#Tag Cloud#UI#Function

เห็น WordPress มี Tag Cloud และงานที่ใช้ PHP ต้องการมีแบบนี้ จึงเกิดฟังก์ชันนี้ขึ้นมาครับ

Function

function printTagCloud($tags, $url, $css) {
    $max_size = 32; // กำหนดขนาด font ใหญ่สุดที่นี่
    $min_size = 12; // กำหนดขนาด font เล็กสุดที่นี่

    ksort($tags);
    $max_qty = max(array_values($tags));
    $min_qty = min(array_values($tags));

    $spread = $max_qty - $min_qty;
    if ($spread == 0) {
        $spread = 1;
    }

    $step = ($max_size - $min_size) / ($spread);

    foreach ($tags as $key => $value) {
        $size = round($min_size + (($value - $min_qty) * $step));
        $printTagCloud .= '<a href="' . $url . $key . '" style="font-size: ' . $size . 'px" title="' . $value . ' things tagged with ' . $key . '" class="' . $css . '">' . $key . '</a> ';
    }

    return $printTagCloud;
}

ตัวอย่าง

$tags = array(
    'PHP'     => 32,
    'Google'  => 431,
    'ASP.NET' => 622,
    'JAVA'    => 51,
    'WEB 2.0' => 23,
    'Linux'   => 971,
    'Firefox' => 407,
    'Idea'    => 82,
    'Music'   => 227
);
$url = "https://memo8.com/?s=";
$css = "LinkNormal";
echo printTagCloud($tags, $url, $css);
  • $tags — Array ของ tag และจำนวนครั้งที่ใช้งาน
  • $url — URL สำหรับลิงก์ tag
  • $css — ชื่อ class CSS เพิ่มความสวยงาม

หวังว่าคงมีประโยชน์กันนะครับ

🚀 รับพัฒนาเว็บไซต์ & เว็บแอพพลิเคชั่น

สนใจดูตัวอย่างงานหรือสอบถามเพิ่มเติม ติดต่อได้เลยครับ โค้ดโมทีฟ (CodeMotive)