独特的slu,如果适合slug-1,slug-2 ... slug-n

时间:2010-10-05 09:57:45

标签: php mysql slug

我只使用slug来识别网站上的页面,例如:example.tld / view / this-fancy-slug。这是使用此功能自动从标题生成的:

public static function Normalize($str)
{
    $charset = "UTF-8";
    $separator = "-";

    $str = strtolower(htmlentities($str, ENT_COMPAT, $charset));
    $str = preg_replace('/&(.)(acute|cedil|circ|lig|grave|ring|tilde|uml);/', "$1", $str);
    $str = preg_replace('/([^a-z0-9]+)/', $separator, html_entity_decode($str, ENT_COMPAT, $charset));
    $str = trim($str, $separator);

    return $str;
}

这会返回一个完美的slu ..但我需要独特的slu ..所以我要结合mysql来检查是否存在适合创建的slug。没问题。

问题是如果有一个slug,我想在决赛中加一个-1。但是如果加上3个相同的slu can可能会有问题......所以我怎么能管理这个来自 slug slug-1 slug-2 slug-3 ... slug-100 slug-n

提前谢谢!

1 个答案:

答案 0 :(得分:1)

不要只检查是否存在相同的slu ..使用正则表达式计算模式/(<base-regex-for-slug>)(-\d+)?/之后的所有slug。因为你只允许使用字母数字,所以你的基本正则表达式就是slug本身。