如何"un-slug"一个标题slug

Mal*_*ala 3 php slug

我正在创建一个需要slug系统的系统.例如,标题为"博客标题:此处"的博客帖子的URL将是:

YYYY/MM/DD /对,博客标题,在这里

我已经很好地设置了系统,如果您的URL匹配多个条目,它会显示所有匹配条目的摘要,如果它只匹配一个条目,则显示完整条目,依此类推.我遇到的唯一麻烦就是标题的"清除".目前,我只考虑第一个字:我的SQL查询结束如下:

'AND subject LIKE '.$this->db->escape(substr($title,0,strpos($title,'-')).'%')
Run Code Online (Sandbox Code Playgroud)

问题是,如果同一天发布的两个帖子以相同的单词开头,则单个条目永远不会匹配.此外,如果一个帖子以单词"A"开头,而同一天发布的另一个帖子以字母A开头,则前一个帖子永远不能单独匹配.

我最初的想法是尝试将slu with 中的每个单词与a 匹配LIKE %word%,虽然这样看起来更好但看起来仍然不完美("一个slu ::麻烦!"和"一个麻烦的slu"会发生冲突).这个问题有优雅的解决方案吗?

Sab*_*lik 6

为什么不在表格中创建一个"slug"字段而只是匹配呢?将slu存储存在那里的方式与在url中显示的完全匹配并完全匹配.应该解决你的问题.此外,当在数据库中输入slug时,检查是否存在类似的slug,如果存在,则在末尾添加一个数字.例如'my-post','my-post-1'.

因此,这将涉及插入时的一点计算,但应解决您的完全匹配问题.