修改字符串seo url,但保留斯堪的纳维亚字母


Modify string to seo url but keep Scandinavian letters

我很难理解如何保存挪威字母在这个preg_replace函数中,我获得了将论坛标题修改为SEO url的功能。我的网站以"iso-8859-1"格式呈现。

How i want it: 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完成之前和之后,我尝试了utf8_encode/decode$title,但没有工作。

感谢您的宝贵时间!编辑:

解决了,我在"一个把戏小马"的帮助下修复了它。我最终得到了这个函数。

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]+/'位是一个正则表达式,表示只匹配而不是字符azAZ09。基本语法在维基百科上。

preg_replace然后用下划线替换这些字符。

您可以在此列表中添加您想要允许的额外字符:

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

设置文档编码为utf-8或iso-8859-1,并将字符添加到列表中,如:

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

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