Konsep Dasar Slugify dalam PHP
Slug adalah bagian dari URL yang ramah mesin pencari (SEO-friendly) dan mudah dibaca manusia, biasanya berupa versi string yang diubah menjadi huruf kecil, tanpa spasi, dan tanpa karakter khusus. Dalam ekosistem PHP, proses ini melibatkan pembersihan string (sanitization) sebelum disimpan ke dalam kolom database MySQL.
Implementasi Fungsi Slugify
Untuk menghasilkan slug yang konsisten, gunakan fungsi str_replace atau preg_replace untuk menangani karakter non-alfanumerik. Berikut adalah implementasi fungsi PHP yang efisien:
function createSlug($string) {
$string = strtolower(trim($string));
$string = preg_replace('/[^a-z0-9-]+/', '-', $string);
$string = preg_replace('/-+/', '-', $string);
return trim($string, '-');
}Langkah Integrasi ke MySQL
- Persiapan Database: Pastikan kolom slug di MySQL memiliki tipe data
VARCHAR(255)dengan indeksUNIQUEuntuk mencegah duplikasi URL. - Sanitasi Input: Selalu gunakan prepared statements (PDO atau MySQLi) untuk mencegah SQL Injection saat menyimpan slug.
- Verifikasi Unik: Jika slug sudah ada di database, tambahkan angka unik di belakang slug (misal:
judul-artikel-1).
| Langkah | Tindakan Teknis | Tujuan |
|---|---|---|
| Sanitasi | strtolower & preg_replace | Standarisasi format URL |
| Penyimpanan | Prepared Statements | Keamanan data (SQL Injection) |
| Indexing | UNIQUE INDEX | Optimasi pencarian & integritas |
| Validasi | Cek SELECT COUNT(*) | Mencegah duplikasi URL |
Optimasi Performa Query
Saat melakukan pencarian berdasarkan slug, pastikan kolom tersebut telah diindeks. Query pencarian yang disarankan:
$stmt = $pdo->prepare("SELECT * FROM posts WHERE slug = :slug LIMIT 1");
$stmt->execute(['slug' => $slug]);
$post = $stmt->fetch();Tips Troubleshooting
- Karakter Non-ASCII: Jika slug mengandung karakter multibyte (seperti aksara non-latin), gunakan fungsi
iconv('UTF-8', 'ASCII//TRANSLIT', $string)sebelum melakukan regex. - Panjang Slug: Batasi panjang slug maksimal 255 karakter untuk menjaga kompatibilitas dengan indeks MySQL.
- Trailing Slashes: Konsistenlah dalam penggunaan garis miring di akhir URL melalui konfigurasi
.htaccessatau routing framework.
🔍 Orang Lain Juga Mencari Ini
Php Slugify Function
Mysql Unique Slug Constraint
Seo Friendly Url Php
Php String To Url Slug
Mysql Index Performance
Php Sanitize String For Url
Handle Duplicate Slugs Php
Php Preg_replace Example
Pdo Prepared Statements Php
Best Practices Url Slugging
Php Slugify Library
Mysql Varchar Index Limit
Url Slug Generator Php
Php Database Optimization
Seo Url Structure