我无法理解如何保留挪威字母 我在这个 preg_replace 函数中得到了“æ ø å”,用于将论坛标题修改为 SEO URL。 我的网站以“iso-8859-1”呈现。
我多么想要它: 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;
}
我尝试在 preg_replace
完成之前和之后对 $title
进行utf8_encode/decode
,但没有成功。
感谢您的宝贵时间!
编辑:
已解决,我在“One Trick Pony”的帮助下修复了它。我最终得到了这个功能。
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”
最佳答案
'/[^a-zA-Z0-9]+/'
位是 regular expression这表示只匹配不是的字符 a
到 z
,A
到 Z
,或 0
到 9
。基本语法是 on wikipedia .
preg_replace
然后用下划线替换这些字符。
您可以将要允许的额外字符添加到此列表:
$title = preg_replace('/[^a-zA-Z0-9æøå]+/', '_', $title);
关于php - 将字符串修改为 seo url 但保留斯堪的纳维亚字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16512626/