2013-05-12 61 views
0

我在理解如何保留挪威字母 「æøå」這個preg_replace函數時遇到了問題,我修改論壇標題爲SEO網址。 我的網站呈現爲「iso-8859-1」。將字符串修改爲seo網址,但保留斯堪的納維亞字母

我怎麼想的那樣:someurl.com/read=kjøp_og_salg

目前看起來是這樣的: someurl.com/read=kj_p_og_salg

//----- The seo url function ------// 
    public function make_seo_name($title){ 
    $title = preg_replace('/[\'"]/', '', $title); 
    $title = preg_replace('/[^a-zA-Z0-9]+/', '_', $title); 
    $title = strtolower(trim($title, '_')); 
    return $title; 
} 

我試圖utf8_encode/decode$title前並在preg_replace完成後,但沒有工作。

謝謝你的時間!

編輯:

解決了,我從 「一招鮮」 一些幫助固定它。我結束了這個功能。

public function make_seo_name($title){ 
    $title = utf8_encode($title); 
    $title = preg_replace('/[\'"]/', '', $title); 
    $title = preg_replace('/[^a-zA-Z0-9\ø\å\æ]+/', '_', $title); 
    $title = strtolower(trim($title, '_')); 
return $title; 
} 

注:我並不需要我的頭從 「ISO-8859-1」 更改爲 「UTF-8」

回答

0

設置文檔編碼成UTF-8或ISO-8859- 1,字符添加到列表中,如:

<head><meta charset="utf-8" /></head> 

$title = preg_replace('/[^a-zA-Z0-9æøå]+/', '_', $title); 
0

'/[^a-zA-Z0-9]+/'位爲regular expression,說只匹配那些人物a通過zA通過Z,或通過0字符9。基本語法是on wikipedia

preg_replace然後用下劃線代替這些字符。

您可以添加你要允許該列表中多餘的字符:

$title = preg_replace('/[^a-zA-Z0-9æøå]+/', '_', $title); 
相關問題