Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mencipta Slug Mesra URL daripada Strings menggunakan PHP?

Bagaimanakah Saya Boleh Mencipta Slug Mesra URL daripada Strings menggunakan PHP?

DDD
DDDasal
2024-12-07 05:53:16620semak imbas

How Can I Create URL-Friendly Slugs from Strings using PHP?

Mencipta Slug Mesra URL menggunakan PHP

Apabila membina aplikasi web, selalunya perlu menukar rentetan kepada format mesra URL yang dikenali sebagai slug. Sebagai contoh, rentetan seperti "Andrés Cortez" hendaklah ditukar kepada "andres-cortez" untuk digunakan dalam URL.

Untuk mencapai ini, fungsi PHP tersuai boleh digunakan:

public static function slugify($text, string $divider = '-')
{
  // replace non letter or digits by divider
  $text = preg_replace('~[^\pL\d]+~u', $divider, $text);

  // transliterate
  $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);

  // remove unwanted characters
  $text = preg_replace('~[^-\w]+~', '', $text);

  // trim
  $text = trim($text, $divider);

  // remove duplicate divider
  $text = preg_replace('~-+~', $divider, $text);

  // lowercase
  $text = strtolower($text);

  if (empty($text)) {
    return 'n-a';
  }

  return $text;
}

Fungsi ini menggunakan satu siri ungkapan biasa dan penukaran aksara untuk mengubah rentetan input menjadi slug. Ia mula-mula menggantikan semua aksara bukan abjad angka dengan pembahagi yang ditentukan. Kemudian, ia mentransliterasi aksara bukan ASCII ke dalam persamaan ASCII yang paling hampir. Aksara yang tidak diingini dialih keluar, dan rentetan dipangkas dan ditukar kepada huruf kecil. Pembahagi pendua dialih keluar untuk memastikan slug bersih.

Dengan memanggil fungsi slugify() ini, pembangun boleh membuat slug daripada rentetan Unicode dengan mudah, menyediakan penyelesaian mudah untuk teks mesra URL dalam aplikasi PHP.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Slug Mesra URL daripada Strings menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn