【发布时间】:2014-06-10 22:39:25
【问题描述】:
我发现了一个非常简洁的脚本,可以将大量文本转换为 URL slug(参见第 3 点)。它就像一个魅力,直到文本包含以下字母之一:ÆØÅ。如果出现这些字母之一,则 $tag 变为空白(之后不会在 MySQL 中插入任何内容)。
为什么会这样,我应该如何解决?如果可能的话,我希望这些字母可以这样转换:Æ>ae - Ø>oe - Å>AA
(1) 我的 HTML 字符集设置为
charset="iso-8859-1"
(2) 我的 MySQL phpmyadmin 中的字段排序规则设置为
utf8_danish_ci
(3) 这是我的代码的样子:
// 将非字母或数字替换为 -
$tag = preg_replace('~[^\\pL\d]+~u', '-', $tag);
// 修剪
$tag = trim($tag, '-');
// 音译
$tag = iconv('iso-8859-1', 'UTF-8', $tag);
// 小写
$tag = strtolower($tag);
// 删除不需要的字符
$tag = preg_replace('~[^-\w]+~', '', $tag);
谢谢!
【问题讨论】: