用于制作 slug 的 PHP 函数(URL 字符串)

标签 php internationalization slug

我想要一个从 Unicode 字符串创建 slug 的函数,例如gen_slug('Andrés Cortez') 应该返回 andres-cortez。我该怎么做?

最佳答案

不要冗长的替换,试试这个:

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;
}

这是基于 Symfony 的 Jobeet 教程中的一个。

关于用于制作 slug 的 PHP 函数(URL 字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2955251/

相关文章:

javascript - 从标题创建 Slug?

php - 如何在 php 中打印目录的链接?

php - 在 MySQL 查询中传递 php 变量

javascript - jQuery/AJAX 数据未发布

Java 世界的本地化方法 - 有什么隐含的含义吗?

python - 为什么我覆盖的保存方法没有在我的 Django 模型中运行?

php - MYSQL 按日期轮换行

visual-studio-2010 - WiX:如何自动包含本地化的附属程序集?

c# - 如何在 SharpDevelop 4.2 中启动一个国际化的 WPF 项目?

seo - 如何在 RESTful URL 中使用 slug?