我听说有人用slu to来生成干净的网址。我不知道它是如何工作的。 目前我有一个codeigniter网站,生成这样的网址
www.site.com/index.php/blog/view/7
根据我的理解,通过维持一个slug字段,可以实现像
这样的网址www.site.com/index.php/blog/view/once-upon-a-time
这是怎么做到的?特别是参考codeigniter?
答案 0 :(得分:48)
我只是将slug存储在我的数据库表中,在一个名为slug
的列中,然后找到一个带有slug的帖子,如下所示:
public function view($slug)
{
$query = $this->db->get_where('posts', array('slug' => $slug), 1);
// Fetch the post row, display the post view, etc...
}
另外,要轻松从帖子标题中获取一个slug,只需使用URL帮助器的url_title()
:
// Use dashes to separate words;
// third param is true to change all letters to lowercase
$slug = url_title($title, 'dash', true);
一点奖励:您可能希望对slug
列实施唯一键约束,以确保每个帖子都有一个唯一的slug,因此CodeIgniter应该查找的帖子不明确。当然,你应该首先给你的帖子提供独特的标题,但是把它放在适当位置强制执行规则并防止你的应用程序搞砸了。
答案 1 :(得分:3)
您可以使用Eric Barnes的CI Slug Library:
答案 2 :(得分:0)
对于我的ES朋友,请使用Text Helper:
删除重音字符 $string = 'áéíóú ÁÉÍÓÚ';
$slug = url_title(convert_accented_characters($string), 'dash', true));
echo $slug; //aeiou-AEIOU
答案 3 :(得分:0)
在codeigniter中创建Page slug
创建名为slug_helper.php的Helper
methodOne.subscribe((resp){
return resp;
});
methodoTwo(resp).subscribe((resp2){
return resp2;
});