PHP 函数来制作 slug(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 教程中的一个。

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

相关文章:

php - 如果数据库具有特定值则重定向

java - GWT 动态字符串 i18n 与 uibinder

ruby-on-rails - 如何为 Devise 的用户名添加 slug?

c# - 停止 C# 语言国际化

angularjs - 如何翻译 Angular-UI-Bootstrap 日期选择器?

python - 在 GAE 中实现 URL slug

php - 从完整 URL 中提取第一个 URL 片段

javascript - 如何使用ajax多次发出请求而不进行硬刷新

php - 显示一个包含多列的表,每列的条件不同 PHP MySQL

php - 通过 PHP 从 MySQL 编辑数据