2012-02-08 43 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