Blogger类型虚荣网址使用zend

时间:2012-04-24 01:32:52

标签: php zend-framework blogger

如果有人向我解释如何在zend中生成虚荣网址会很棒。我打算编写一个博客,我希望它的帖子有格式http://www.example.com/2012/6/24.blog-title的链接。我对zend很新。

2 个答案:

答案 0 :(得分:1)

首先,您将创建一个控制器,例如dateAction,它接受日期作为输入参数,并根据这些日期列出文章。假设您在文章控制器中创建了dateAction。

所以让这个网址完成工作www.example.com/article/date/year/2012/month/06/day/24/title/abcdef

首先

但是现在你想把它变成美丽的东西,所以使用Zend_Router

执行此操作后,您将在引导程序中创建路径

$route = new Zend_Controller_Router_Route_Regex(
    '(\d+)/(\d+)/(\d+)/([a-z0-9]+)',
    array(
        'controller' => 'article',
        'action' => 'date'
    ),
    array(
        1 => 'year',
        2 =>'month',
        3 => 'day',
        4 =>'title'
    )
);

Zend_Controller_Front::getInstance->getRouter()->addRoute('article',$route);

现在,网址http://www.example.com/2012/6/24/blog-title的工作方式与此相同 www.example.com/article/date/year/2012/month/06/day/24/title/abcdef

答案 1 :(得分:-1)

您想要创建的内容通常称为slug。我不知道Zend框架中有什么内容可以生成slug,所以你需要自己生成一个。这是生成slug的一种非常简单的方法。

$slug = preg_replace("/[^a-zA-Z0-9 ]/", "", $title);
$slug = str_replace(" ", "-", $slug);

为了使其更加健壮,您应该检查您生成的slug是否已存在于数据库中。如果是,您可以自动添加一个数字到最后。例如,如果“this-blog-post”已经存在,请尝试“this-blog-post-1”。

除了生成一个slug之外,你还需要遵循zerkms的注释,并在你的Zend配置中添加一个路径,将这个slug传递给你的控制器。