php - 将字符串修改为 seo url 但保留斯堪的纳维亚字母

标签 php url seo preg-replace

我无法理解如何保留挪威字母 我在这个 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这表示只匹配不是的字符 azAZ,或 09。基本语法是 on wikipedia .

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

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

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

关于php - 将字符串修改为 seo url 但保留斯堪的纳维亚字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16512626/

相关文章:

javascript - 如何使用ajax显示数据库中的图像

php - MYSQL 查询 $result[x] 停止工作

javascript - JS : Regex - replace parts of domains in full text

wordpress - 有人窃取了我网站的全部内容,并且在 Google 中的排名已经超过了我

asp.net-mvc - 为带有额外信息的图像设置虚拟路径

php - 使用单个查询计算重复项并更新表

java - 复合模式中的多叶方法问题

java - https 帖子 : MalformedURLException on App Engine

Android:点击按钮时转到 HTTP 网址

c# - 在输入 Umbraco 站点的 URL 时添加正斜杠