此函数用于清理给定值,但输出“n-a”,就好像没有指定值一样。它必须是最简单的问题,但就在这一刻它让我击败。
function slug($text){
// replace non letter or digits by -
$text = preg_replace('~[^pLd]+~u', '-', $text);
// trim
$text = trim($text, '-');
// transliterate
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
// lowercase
$text = strtolower($text);
// remove unwanted characters
$text = preg_replace('~[^-w]+~', '', $text);
if (empty($text))
{
return 'n-a';
}
return $text;
}
我很感激一些意见。
答案 0 :(得分:2)
您需要更改您的第一个正则表达式,这似乎是不正确的,应该是,
// replace non letter or digits by -
$text = preg_replace('~[^\w\d]+~u', '-', $text);
<强> Working Demo. 强>
答案 1 :(得分:1)