2012-02-08 46 views

回答

3

Django中的slugify转换为小写,删除非单词字符(字母数字和下划线)并将空格转换为连字符。也剥去前导和尾随空白。
以下是PHP中执行相同任务的功能。

$slug = preg_replace('@[\s!:;_\?=\\\+\*/%&#][email protected]', '-', $str); 
     //this will replace all non alphanumeric char with '-' 
$slug = mb_strtolower($slug); 
     //convert string to lowercase 
$slug = trim($slug, '-'); 
     //trim whitespaces 

你需要一些控制器来定义一个函数来使用它的Yii

+0

我是Yii的新手,我有点失望它没有“slugify”功能..而且文档也很差... 反正,我已经写我自己的小功能: '公共职能slugify($ STR) {$ 海峡=的preg_replace( '/ [^ A-ZA-Z0-9] /', '',$海峡); $ str = preg_replace('/ \ s + /','',$ str); $ str = str_replace('',' - ',trim($ str)); return mb_strtolower($ str); }' – Marian 2012-02-11 11:19:37

1

它仍然没有完全清楚你要实现的目标到底是什么。 如果你想使用一个包含不受浏览器支持的字符的字符串,那么你应该看看可以为你做到这一点的PHP函数。

也许 http://php.net/manual/en/function.urlencode.php (有更多的,取决于你的需要)

如果你想使用自己的自定义编码,然后指定你想实现什么,我也许能提供帮助。

0

您可以将行为添加到模型中 - this plugin将为您完成艰苦的工作。

-1
+0

欢迎您访问解决方案的链接,但请确保您的答案在没有它的情况下很有用:[添加链接的上下文](// meta.stackexchange.com/a/8259),以便您的同行用户可以有一些想法它是什么以及它为什么在那里,然后在目标页面不可用的情况下引用页面中最相关的部分。 [仅仅是一个链接的答案可能会被删除。](// stackoverflow.com/help/deleted-answers) – LW001 2017-10-23 19:46:56