【发布时间】:2013-02-11 13:11:41
【问题描述】:
我认为这是 slugify url 的最简单方法。你有什么禁忌症?
function url_clean($str)
{
$str = iconv('utf-8', 'us-ascii//TRANSLIT', $str);
$clean_str = preg_replace(array(
'/\'|\"/',
'/ /'
) , array(
'',
'-'
) , $str);
return $clean_str;
}
更新
上面的代码在本地运行良好,但在服务器上返回带有?而不是音译字符的字符串:árvíztűrő -> ?rv?zt?r?
phpinfo() 在本地主机上
iconv 支持启用
iconv 实现“libiconv”
iconv 库 1.14 版
phpinfo() 在服务器上
iconv 支持启用
iconv 实现 glibc
iconv 库版本 2.12
【问题讨论】:
-
如果
$str包含例如%30(或任何其他 url 编码字符)?如果它包含在 URL 中无效但属于 ASCII 的字符怎么办? -
也许这更适合Code Review?
-
用于创建 SEO 友好的 url,在这种情况下看不到问题。但你是对的。如何提高效率?
-
@OneTrickPony 我认为这些是简单而出色的解决方案,但在网页上(不像门户网站或 cms 网站)不需要这么多的资源使用。我说得对吗?
标签: php url seo iconv clean-urls