Menu

Tuesday, November 12, 2019

[PHP] วิธีการสร้าง Slug จากข้อความที่กำหนด
[PHP] How to Slugify a String

Slug เป็น Identifier ประเภทหนึ่งที่ใช้อ้างอิงถึงข้อมูลเช่นเดียวกับ id ใน database แตกต่างกันตรงที่ Slug เป็น identifier ที่คนสามารถอ่านเข้าใจ

โค้ดสำหรับสร้าง Slug จากข้อความที่กำหนดเป็นดังนี้
public static function slugify($str, $delimiter = '-')
{
    // Replace none alphanumeric with delimiter
    $str = preg_replace('/[^A-Za-z0-9]+/', $delimiter, $str);

    // Replace duplicated delimiter
    $str = preg_replace("/$delimiter+/", $delimiter, $str);

    // Trim delimiter
    $str = trim($str, $delimiter);

    // Convert to lower case
    $str = strtolower($str);

    return $str;
}
ขั้นตอนการทำงานเป็นดังนี้
  1. แทนที่อักขระพิเศษที่ไม่ใช่ตัวอักษรและตัวเลขด้วย delimiter
  2. ลบ delimiter ที่อยู่ติดกันออกให้เหลือเพียงตัวเดียว
  3. ตัด delimiter ที่อาจจะมีอยู่ทั้งหน้าและหลังข้อความออก
  4. แปลงข้อความที่ได้เป็นตัวพิมพ์เล็ก

No comments:

Post a Comment