一尘不染

PHP函数来创建子弹(URL字符串)

php

我想拥有一个从Unicode字符串创建子段的函数,例如gen_slug('Andrés Cortez')should return andres- cortez。我应该怎么做?


阅读 303

收藏
2020-05-26

共1个答案

一尘不染

代替冗长的替换,请尝试以下方法:

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

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

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

  // trim
  $text = trim($text, '-');

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

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

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

  return $text;
}

这是基于Symfony的Jobeet教程中的内容。

2020-05-26