我想有一个从Unicode字符串创建插件的函数,例如gen_slug('Andrés Cortez')
应该返回andres-cortez
。我该怎么做呢?
发布于 2017-03-12 05:29:43
有一个很好的解决方案here,它也可以处理特殊字符。
Texto Fantático => texto-fantastico
function slugify( $string, $separator = '-' ) {
$accents_regex = '~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i';
$special_cases = array( '&' => 'and', "'" => '');
$string = mb_strtolower( trim( $string ), 'UTF-8' );
$string = str_replace( array_keys($special_cases), array_values( $special_cases), $string );
$string = preg_replace( $accents_regex, '$1', htmlentities( $string, ENT_QUOTES, 'UTF-8' ) );
$string = preg_replace("/[^a-z0-9]/u", "$separator", $string);
$string = preg_replace("/[$separator]+/u", "$separator", $string);
return $string;
}
作者: Natxet
https://stackoverflow.com/questions/2955251
复制相似问题