2014-10-06 43 views
0

在CI url_title()函數中,它從字符串中刪除點,而我想用$seperator替換。這裏是url_title()的正則表達式替換數組。Codeigniter URL助手的正則表達式幫助

$trans = array(
    '&.+?;'     => '', 
    '[^a-z0-9 _-]'   => '', 
    '\s+'     => $separator, 
    '('.$q_separator.')+' => $separator 
); 

$str = strip_tags($str); 

foreach ($trans as $key => $val) 
{ 
    $str = preg_replace("#".$key."#i", $val, $str); 
} 

我怎樣才能改變$trans陣列,它可以與$separator代替 「」, 「%」, 「+」 字。

另一個是「%20」返回爲無。如何預防它?

感謝您的任何幫助。

回答

0

試試這個:

$trans = array(
    '&.+?;'     => '', 
    '[^a-z0-9 _-]'   => '', 
    '\s+'     => $separator, 
    '('.$q_separator.')+' => $separator, 
    '\.'     => $separator, 
    '\+'     => $separator, 
    '%'      => $separator 
); 
+0

感謝。注意,當我們在''&.+?;'鍵之前加上''。''鍵時,它就會起作用。但是,如果字符串以「%20 improvement」開頭,或者像「20%difference」這樣的字符串變爲「20fference」,它仍然會失敗。 – YahyaE 2014-10-06 15:36:43

+0

你的分隔符是什麼? – friedi 2014-10-06 15:40:14

+0

我的分隔符是破折號' - '。 – YahyaE 2014-10-06 16:23:57