0

我无法理解如何在这个 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;
}

我在完成之前和之后尝试utf8_encode/decode过,但没有奏效。$titlepreg_replace

感谢您的时间!

编辑:

解决了,我在“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”

4

2 回答 2

0

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

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

$title = preg_replace('/[^a-zA-Z0-9æøå]+/', '_', $title);
于 2013-05-12T22:37:01.340 回答
0

'/[^a-zA-Z0-9]+/'位是一个正则表达式,表示只匹配不是字符athrough的字符zAthroughZ0through的字符9。基本语法在 wikipedia 上

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

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

$title = preg_replace('/[^a-zA-Z0-9æøå]+/', '_', $title);
于 2013-05-12T22:37:08.767 回答